아이티클래스

접근 제한자

2020. 3. 29. 16:17

자바(JAVA) 접근 제한자


접근 제한자(access modifier)에는 public, protected, private 와 아무것도 선언하지 않았을 경우 자동으로 선언되어지는 default(friendly) 접근 제한자가 있다.
default 접근 제한자는 자동으로 선언되어지기 때문에 변수나 메소드 앞에 명시적으로 적어서는 안된다. 다시 말해서 아무것도 선언되지 않았을 경우 디폴드(default) 또는 프렌드리(friendly) 접근 제한자로 선언되었다고 말한다. 이러한 접근 제한자를 통해 프로그램 작성시 특정 데이터를 보호하는 기능을 구현 할 수 있다.

클래스에는 public 제한자와 friendly 제한자만이 선언될 수 있으며 중첩(nested) 클래스에는 private 제한자와 protected 제한자도 사용될 수 있다. 클래스의 멤버에는 접근 제한자가 모두 사용될 수 있다.





default 접근 제한자
같은 패키지에 있는 클래스와 같은 패키지에서 default 접근 제한자로 선언된 멤버가 있는 클래스를 상속받은 클래스 모두 default 접근 제한자가 선언된 멤버에 접근 할 수 있다. 그러나 default 접근 제한자가 선언된 멤버는 다른 패키지에 있는 클래스와 다른 패키지에서 해당 클래스를 상속받은 클래스에서는 접근 할 수 없다. default 접근 제한자로 선언된 멤버가 있는 패키지 내의 모든 클래스는 default 접근 제한자로 선언된 멤버에 접근할 수 있다.

public 접근 제한자
같은 패키지에 있는 클래스와 같은 패키지 내에서 상속받은 클래스 모두 public 접근 제한자로 선언된 멤버에 접근 할 수 있다. 또한 public 접근 제한자로 선언된 멤버는 다른 패키지에 있는 클래스와 다른 패키지에서 해당 클래스를 상속받은 클래스에서 모두 접근 할 수 있다. 즉 public 접근 제한자로 선언된 멤버는 어디서나 접근할 수 있다.






protected 접근 제한자
같은 패키지에 있는 클래스와 같은 패키지 내에서 상속받은 클래스 모두 protected 접근 제한자로 선언된 멤버에 접근 할 수 있다. protected 접근 제한자로 선언된 멤버를 다른 패키지에 있는 클래스에서는 접근할 수 없지만 다른 패키지에서 해당 클래스를 상속받은 클래스는 접근할 수 있다. 즉 protected 접근 제한자로 선언된 멤버가 있는 클래스와 같은 패키지 내의 클래스 그리고 다른 패키지에서 해당 클래스를 상속받은 클래스만이 protected 접근 제한자로 선언된 멤버에 접근할 수 있다.

private 접근 제한자
같은 패키지에 있는 클래스와 같은 패키지 내에서 private 접근 제한자로 선언된 멤버가 있는 클래스를 상속받은 클래스 모두 private 접근 제한자로 선언된 멤버에 접근 할 수 없다. 또한 private 접근 제한자로 선언된 멤버는 다른 패키지에 있는 클래스와 다른 패캐지에서 해당 클래스를 상속받은 클래스 모두 접근할 수 없다. 즉 다른 클래스에서는 private 접근 제한자로 선언된 멤버를 접근할 수 없다.


'Java' 카테고리의 다른 글

static 제한자  (0) 2020.03.30
abstract 제한자  (0) 2020.03.30
식별자(Identifier)  (0) 2020.03.29
키워드(Keyword)  (0) 2020.03.29
변수 및 기본 데이터 유형  (0) 2020.03.29

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band