-
JAVA | 접근 제한자 (public, protected, default, private)programming/JAVA 2020. 5. 21. 00:04
접근 제한자 란?
main() 메소드를 가지지 않는 대부분의 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다.
라이브러리 클래스를 설계할 때에는 외부 클래스에서 접근할 수 있는 멤버와 접근할 수 없는 멤버로 구분해서
필드, 생성자, 메소드를 설계하는 것이 바람직하다.
객체 생성을 막기위해 생성자를 호출하지 못하게 하거나 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하도록 막거나 특정 메소드를 호출할 수 없도록 제한할 필요가 있다.
이러한 기능을 구현하기 위해 사용 되는 것이 접근 제한자 이다.
접근 제한자의 종류
1. public 접근 제한자
외부 클래스가 자유롭게 사용할 수 있는 공개 멤버를 만든다.
- 외부 클래스에서 자유롭게 접근, 사용 할 수 있다.
2. protected 접근 제한자
같은 패키지 또는 자식 클래스에서만 사용할 수 있는 멤버를 만든다.
3. private 접근 제한자
외부에 노출되지 않는 멤버를 만든다.
- 외부 클래스에서 접근할 수 없고, 본인 클래스 내부에서만 사용할 수 있다.
4. default 접근 제한자
위 세가지 접근 제한자가 적용되지 않는 멤버는(접근 제한자를 적용하지 않았을 때) default 접근 제한을 가진다.
default 접근 제한자는 같은 패키지에 소속된 클래스에서만 사용할 수 있는 멤버를 만든다.
접근 제한 적용 대상 접근할 수 없는 클래스 public 클래스, 필드, 생성자, 메소드 없음 (모두 접근 가능) protected 필드, 생성자, 메소드 자식 클래스가 아닌 다른 패키지에
소속된 클래스default 클래스, 필드, 생성자, 메소드 다른 패키지에 소속된 클래스 private 필드, 생성자, 메소드 다른 외부 클래스 접근 제한 다른 패키지 클래스 같은 패키지 클래스 자식 클래스 본인 클래스 public O O O O protected X O O O default X O X O private X X X O 참고 : 이것이 자바다
'programming > JAVA' 카테고리의 다른 글
JAVA | 인터페이스(Interface) (0) 2020.05.26 JAVA | 상속(Inheritance) (0) 2020.05.21 JAVA | 싱글톤 패턴 (Singleton Pattern) (0) 2020.05.20 JAVA | 클래스 구성(필드, 생성자, 메소드) (0) 2020.05.16 JAVA | 객체 지향 프로그래밍(OOP : Object Oriented Programming) (0) 2020.05.15