접근 한정자: public, private, protected, internal 등

Fruit·2023년 3월 29일

✨ Hello C#!

목록 보기
26/34
post-thumbnail

🌸 공개 수준

  • 최소의 기능만 노출하고 내부를 감춘다.
  • 필드는 상수를 제외하고는 감추는 것을 권장한다.


🌸 접근 한정자

  • 접근 한정자로 수식하지 않으면 private로 자동 지정된다.
호출자의 위치publicprotected internalprotectedinternalprivate protectedprivate
클래스 내✔️️✔️✔️✔️✔️✔️
파생 클래스
(동일한 어셈블리)
✔️✔️✔️✔️✔️
비파생 클래스
(동일한 어셈블리)
✔️✔️✔️
파생 클래스
(다른 어셈블리)
✔️✔️✔️
비파생 클래스
(다른 어셈블리)
✔️

using System;

namespace AccessModifier
{
    class MyClass1
    {
        public int a;
        private int b;
        protected int c;

        void Function1()		// private로 자동 지정
        {
            this.a = 1;
            this.b = 1;
            this.c = 1;
        }
    }

    class MyClass2 : MyClass1       // MyClass1을 상속 받은 파생 클래스
    {
        void Function2()
        {
            a = 3;      // public 한정자 
            b = 3;      // private 한정자 → 에러 발생
            c = 3;      // protected
        }
    }

    class MainApp
    {
        static void Main(string[] args)
        {
            MyClass1 test = new MyClass1();

            test.a = 2;     // public 한정자 
            test.b = 2;     // private 한정자 → 에러 발생
            test.c = 2;     // protected → 에러 발생
        }
    }
}

▪ 참고: Hello Fruit! - 상속 (파생 클래스)

▪ 사진 출처: Pixabay - MasterTux

profile
🌼인생 참 🌻꽃🌻 같다🌼

0개의 댓글