본문 바로가기

개인공부/C#

[C#] 접근 제한자(Access Modifier)

 

■ 접근 제한자(Access Modifier) : 

 - '접근 제한자' 혹은 '접근 한정자'라고 불림

 - class 및 field, method 등의 접근 범위를 정의하는데 사용

 

■ 접근 제한자(Access Modifier) 종류 :

접근 제한자 설명
public 클래스의 내부/외부 모든 곳에서 접근 가능
protected 클래스 외부에서 접근 불가, 파생 클래스에서 접근 가능
private 클래스 내부에서만 접근 가능, 파생 클래스에서도 접근 불가
internal 같은 어셈블리에 있는 코드에서만 public으로 접근 가능,
다른 어셈블리에 있는 코드에서는 private과 같은 수준의 접근성
protected internal 같은 어셈블리에 있는 코드에서만 protected로 접근 가능,
다른 어셈블리에 있는 코드에서는 private과 같은 수준의 접근성
private protected 같은 어셈블리에 있는 클래스에서 상속받은 클래스 내부에서만 접근 가능

 

 

■ 어셈블리(Assembly) :

 - .Net 기반 Application의 배포 단위

 - C#에서 컴파일된 소스 코드의 결과를 .Net Assembly라고 함

 - 실행 파일(.exe) 또는 동적 연결 라이브러리(.dll) 파일 형태를 가짐

 

■ 은닉성(캡슐화) :

 - 보여주고 싶은 것만 보여줌

 - 필요한 최소의 기능만 노출하고 내부를 감추는 것

 - 보안을 위해서 접근 제한자(Access Modifier)를 사용하여 외부에서 접근 간으한 보호 수준 결정

 

■ Example

class Program
{
    static void Main(string[] args)
    {
        TestClass test = new TestClass();
        Console.WriteLine($"public 변수 X = {test.X}는 외부에서 접근 할 수 있습니다.");
        test.TestMethod();
    }
}

public class TestClass
{
    public int X = 10;
    private int Y = 20;

    public void TestMethod()
    {
        Console.WriteLine($"private 변수 Y = {Y}는 외부에서 접근 할 수 없습니다.");
    }
}

 

Example 결과