KoreaIt Academy/JAVA

11. JAVA의 접근 제한자

hongeeii 2021. 7. 18.
728x90
반응형

JAVA에서 클래스, 필드, 생성자를 접근할 수 있는 권한을 제한하는 키워드를 접근제한자라고 합니다.

접근제한자의 종류는 public, protected, private, default(없음)으로 키워드를 나눌 수 있습니다.

1. public

public으로 선언된 클래스, 필드, 메소드, 생성자는 모든 곳에서 접근 가능이 가능합니다.

또 한 클래스파일에서 여러 클래스를 선언 할 수 있는데요, 그중에서 대표 클래스를 의미할 때 사용합니다.

다른 패키지에서 Blog클래스와 Test클래스를 만들고 사용을 해보겠습니다.

이렇게 import를 사용하여 다른패키지에 있는 클래스를 사용할 수 있는것을 볼수 있습니다.

 

2. protected

protected 접근제한자는 같은 패키지 내에서는 사용가능 하지만 다른 패키지에서 접근 불가 합니다.

그리고 상속받은 클래스에서 사용이 가능합니다.

서로다른 패키지에서 protected 접근제한자로 선언된 메소드는 사용이 안됩니다.

그러나 Blog클래스를 상속받으면 hello메소드를 사용 할 수 있습니다.

3. default

필드와 메소드를 선언할 때 public 또는 private 를 생략했다면 default 접근제한을 가집니다.

default 접근 제한은 같은 패키지에서는 아무런 제한 없이 필드와 메소드를 사용할 수 있으나,

다른 패키지에서는 필드와 메소드를 사용할 수 없도록 합니다. 

Test2클래스를 test패키지내에 만들고 default 접근제한자인 printName메소드를 선언 하였습니다.

같은 패키지에 있는 Test클래스에서는 printName메소드를 사용할 수 있지만, 다른 패키지에 있는

Blog클래스는 사용이 안되는것을 볼 수 있습니다.

 

4. private

private 접근 제한은 동일 패키지이건 다른 패키지이건 상관 없이 필드와 메소드를 사용하지 못하도록 제한합니다. 오로지 클래스 내부에서만 사용할 수 있습니다. 

Test2클래스에서 필드에 private 접근제한자를 붙여주면 같은 패키지에 있는 Test클래스에서도 접근이 불가합니다.

외부에서 필드에 접근하기 위하여 gettersetter을 이용합니다.

단축키 (alt+shift+s)를 누르고 Generate Gewtters and Setters를 눌러줍니다.

접근할 필드에 체크를 하고 Generate를 눌러준다면

이렇게 Getter, Setter 메소드가 생성이 되는데요,

Setter 메소드로 값을 변경해주고 Getter 메소드로 값을 가져올 수 있습니다.


이상으로 접근제한자에 대해서 알아보았습니다.

728x90
반응형

추천 글