본문 바로가기
java

[Java] 접근제어자

by jinbro 2017. 1. 20.

[접근제어자]

접근제어자는 클래스 내부 멤버변수, 메소드에 대한 접근을 제어하기위한 명령어이며, 세가지로 나뉜다.

1) public : 어디에서나 접근 가능함(인터페이스에서는 상수 - 변수 없이 상수로 선언됨, 메소드 모두 public으로 고정되어있음)  

2) protected : 같은 패키지 내에서만 클래스 내부구성요소(변수, 메소드)는 사용할 수 있고 외부패키지에서는 사용안됨

3) private : 해당 클래스 내부에서만 사용가능함(객체를 생성하더라도 멤버변수/메소드를 호출할 수 없음)

생성자도 private을 설정할 수 있다. 왜 사용하냐고 하겠지만 생성자에서 다른 생성자를 호출해서 하나의 생성자로 모이게끔 코드를 구성할 때 최종 생성자만 private로 설정해놓는 것이다.(객체 생성시 사용자가 아닌 관리자가 따로 추가해야 할 것이 있을 때)



[접근제어자 주의해야할 점]

오버라이드 하는 메소드는 상속받은 메소드의 접근 허용범위와 같거나 더 넓은 접근 허용범위를 적용해야함

=> 오버라이드 메소드(부모클래스, 인터페이스 메소드)가 protected일 경우 자식클래스에서는 protected나 public이여야한다.

=> 인터페이스는 지정하지 않아도 모두 public이기 때문에 구현(implements)했을 때에 그 외 접근제어자를 달면 안된다.



댓글