C#

접근제한자

언제나즐거운IT 2024. 6. 30. 15:10

namespace ConsoleApplication1
{
    class A
    {
        protected int x = 123;
    }
 
    class B : A
    {
        static void Main()
        {
            A a = new A();
            B b = new B();
 
            // 에러 CS1540 발생, 왜냐하면 X는 오직 A에서 파생된 클래스에서만 접근이 가능하기 때문
            a.x = 10;
 
            // A에서 파생된 클래스인 B에선 접근이 가능하다.
            b.x = 10;
        }
    }
}

protected는 클래스 외부에서는 접근할수 없지만 파생된 클래스에서 접근할 수 있다.

 

this 키워드는 자기 자신을 가리킬때 사용하는 키워드

 

using System;
 
namespace ConsoleApplication1
{
    class A
    {
        private int num;
 
        public A(int num) // 생성자
        {
            this.num = num; 
        }
        public void Show()
        {
            Console.WriteLine("num: " + num);
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            A a = new A(50);
 
            a.Show();
        }
    }
}