본문 바로가기
My Image
프로그래밍/Java

[JAVA] 클래스와 인터페이스의 접근제어자

by Lim-Ky 2021. 11. 25.
반응형

 

JAVA에는 클래스와 인터페이스에서 사용하는 접근제어자가 있습니다.

 

접근제어자는 다른 클래스, 다른 패키지 등등에서 멤버 변수 및 메서드에 함부로 접근하지 못하도록 하는것이 목적입니다. 각 접근제어자의 접근이 허용되는 범위는 아래와 같습니다.

 

생활코딩 발췌

접근제어자 접근 허용 범위 동일
클래스
동일
패키지
다른
패키지
자식
클래스
다른
패키지
public 외부 클래스에서 자유롭게 접근 가능
protected 같은 패키지 내 클래스 또는 자식 클래스 접근 가능  
default 같은 패키지 내 클래스 접근 가능(접근제어자 생략시)    
private 외부 클래스 모두 접근 불가 (자기자신만 접근 가능)      

 

단!! 인터페이스의 접근제어자는 무조건 public 입니다. 왜냐면 인터페이스는 구현(실체)클래스가 아닌 추상클래스이며 심지어 추상클래스보다도 더 추상적인 기본 골격수준만 가지고 있는 형태이기 때문에 특정한 멤버변수 및 멤버메서드를 가지지 못하는 컨셉으로 만들어졌습니다.

 

따라서, 해당 인터페이스를 구현하는 구현클래스에서 구현이 필연적이기 때문에 접근이 용이하도록 public 접근제어자를 무조건 기본으로 합니다. 만약 public 접근제어자를 생략하더라도 컴파일시 자동적으로 public으로 인지합니다. 즉, 인터페이스의 접근제어자는 무조건 pubilc 입니다.

반응형

댓글