- 접근 제한자는 클래스, 멤버(필드, 속성, 메서드) 또는 타인의 접근 가능 범위를 지정하는 키워드입니다.
- 접근 제한자를 사용하여 클래스와 멤버들의 가시성을 제어하고, 적절한 정보 은닉과 캡슐화를 구현할 수 있습니다.
public
- 가장 넓은 범위의 접근 제한자로, 해당 멤버는 어디서든 접근할 수 있습니다.
public class MyClass { ... }, public int MyProperty { get; set; }
private
- 가장 제한적인 범위의 접근 제한자로, 해당 멤버는 동일한 클래스 내에서만 접근할 수 있습니다.
- 클래스 외부에서는 직접 접근할 수 없고, 해당 클래스의 메서드나 프로퍼티를 통해 접근할 수 있습니다.
private int myField;, private void MyMethod() { ... }
protected
- 해당 멤버는 동일한 클래스 내부와 해당 클래스를 상속받은 파생 클래스에서 접근할 수 있습니다.
- private와 동일하게 클래스 외부에서 직접 접근할 수 없고, 해당 클래스 혹은 파생 클래스의 메서드나 프로퍼티를 통해 접근할 수 있습니다.
protected int myField;, protected void MyMethod() { ... }