old/Java
접근 제한자(Access Modifier)
물 개
2020. 11. 15. 15:39
외부 클래스에서 사용할 목적으로 설계된 라이브러리 클래스는,
외부 클래스에서 접근할 수 있는 멤버와 접근할 수 없는 멤버로 구분해서 설계해야한다.
자바에서는 이런 기능을 구현하기 위해 접근 제한자를 제공한다.
1) public
접근할 수 없는 클래스 없음.
2) protected
자식 클래스가 아닌 다른 패키지에 소속된 클래스 접근 불가.
패키지 내부와 자식 클래스 접근 가능.
3) default
다른 패키지에 소속된 클래스 접근 불가.
패키지 내부에서만 접근 가능
4) private
모든 외부 클래스 접근 불가.
클래스 내부에서만 접근 가능.
접근 제한자는 클래스, 필드, 생성자, 메소드 모두 붙일 수 있지만 클래스는 public 혹은 default만 가능.
객체 외부에서 마음대로 데이터를 읽고 써서 객체의 무결성을 깨는 것을 막기 위해,
객체 지향 프로그래밍에서는 필드를 private으로 접근 제한하고 메소드를 통해 데이터를 다루는 것을 선호한다.
이런 메소드는 Getter, Setter 등이 있다.