자바

JAVA 자바 클래스 접근 제한자

알통몬_ 2017. 3. 12. 19:24
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

접근 제한자

 main() 메서드가 없는 대부분의 클래스는 라이브러리 클래스입니다.

라이브러리 클래스를 설계할 때에는 외부 클래스에서 접근할 수 있는 멤버와 

접근할 수 없는 멤버로 구분해서 필드, 생성자, 메서드를 설계하는 것이 바람직합니다. 

객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 

객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하도록 막아야 합니다.

 특정 메서드를 호출할 수 없도록 제한할 필요가 있습니다. 

자바는 이러한 기능을 구현하기 위해 접근 제한자를 제공하고 있습니다.

 접근 제한자는 public, protected, default, private와 같이 네 가지가 있습니다.


public -> protected -> default -> private 오른쪽으로 갈수록 접근 제한이 강화됨.


접근 제한  적용대상                     접근할 수 없는 클래스

public      클래스,필드,생성자,메서드   없음

protected  필드,생성자,메서드           자식 클래스가 아닌 다른 패키지에 소속된클래스                                      

default     클래스,필드,생성자,메서드  다른 패키지에 소속된 클래스

private     필드,생성자,메서드           모든 외부 클래스


클래스 접근 제한

 클래스를 선언할 때 고려해야 할 사항

같은 패키지 내에서만 사용할 것인가, 

다른 패키지에서도 사용할 수 있도록 할 것인가 결정해야 함

. 클래스에 적용할 수 있는 접근 제한자는 public, default 단 두기지 입니다.


//default 접근 제한

  class 클래스 { ... }

//public 접근 제한

  public 클래스 { ... }


default 접근 제한

 클래스를 선언할 때 public을 생략했다면 클래스는 default 접근 제한을 가진다.

 클래스가 default 접근 제한을 가지게 되면 다른 패키지에서는 사용할 수 없도록 제한됩니다.


public 접근 제한

 클래스를 선언할 때 public 접근 제한자를 붙였다면 클래스는 public 접근 제한을 가집니다. 

클래스가 public 접근 제한을 가지게 되면 같은 패키지뿐만아니라 

다른 패키지에서도 아무런 제한 없이 사용할 수 있습니다. 

클래스가 다른 개발자가 사용할 수 있도록 라이브러리 클래스로 개발되어야 한다면 

반드시 public 접근 제한을 갖도록 해야합니다. 

반응형