접근제어란?
크래스 또는 클래스의 멤버(필드, 메서드)의 접근을 제어하기 위해 필요한 기능을 접근제어라고 한다.
예를 들어서 쉽게 말하면
int var;이라는 변수가 있다고 할때
var 을 허락받지 못하면 var을 읽을 수 없게 한다는 것이다.
접근제어 명령어
public : 모든 클래스에서 접근 가능
protected : 상속받은 자식 클래스 또는 같은 패키지에서 접근 가능
default : 같은 패키지의 모든 클래스에서 접근 가능
private : 같은 클래스에서 접근 가능
접근제어 강한순서
private>default>protect>public
public
public 은 자바의 접근을 제어하는 예약어중 하나로 외부 어느 메서드에서라도 해당 클래스, 메서드, 필드로 접근하는 것을 허용한다는 의미이다.
protect
protected 방식의 접근제어는 부모 클래스의 멤버가 protected로 인가되면 부모 클래스를 상속받는 자식 클래스에서만 해당 멤버를 접근이 가능하도록 캡슐화 하는 방식이다. 클래스와 클래스라고하면 이제까지 한 클래스에서 소스를 짜던 사람들은 햇갈리기 시작할 것이다. 뒤에 클래스와 클래스끼리 뭉쳐서 프로그램을 형성하는 것을 보면서 감잡기를 바란다.
default
default 접근제어는 패키지를 선언하지 않으면 자동으로 부여되는 권한이 있는데 이를 가르켜 default 접근 제어라고 한다. default 접근제어를 사용하면 해당 클래스는 프로젝트의 루트 디렉토리에 해당 클래스가 생성된다.
private
private는 정해진 접근방법으로만 접근할 수 있게 해서 불법으로 직접 접근하는 것을 막기위한 것이다. 강제사항은 아니지만 필드의 값을 보호하기 위한 좋은 습관이므로 private를 사용하는 것이 바람직 하다. 또한 private는 메서드 접근을 제어하기 위해서도 사용된다. 일반적으로 대부분의 필드는 private로 지정하며, 메서드는 클래스 외부에서 호출할 필요가 있는 메서드를 제외하고 클래스 내부의 메서드에 의해서만 호출되는 메서드는 private로 인가한다. 클래스 필드의 값을 읽어오는 메서드, 기타외부에서의 접근이 필요한 메서드 등으로 구분된다.
'기타 > 프로그래밍 분류' 카테고리의 다른 글
Java - 15.생성자 (0) | 2011.07.01 |
---|---|
Java - 14.패키지 (0) | 2011.07.01 |
Java - 12.Static과 메모리 구조 (2) | 2011.06.30 |
JAVA - 11.클래스와 인스턴스 (0) | 2011.06.29 |
JAVA - 10.객체지향의 개념 (0) | 2011.06.28 |