본문 바로가기

Java/Java

자바의 접근 제한자 (한정자)

자바는 객체지향의 특성인 캡슐화와 정보 은폐를 제공하기 위해 멤버변수에 한정자를 사용합니다.

public
같은 클래스, 하위 클래스, 또는 같은 패키지 또는 다른 패키지 내에 있는 어떤 클래스에서도 접근 할 수 있습니다.
이 접근 권한은 클래스 또는 객체의 외부 인터페이스를 제공해 줄 때 주로 사용합니다.
private
같은 클래스내에서만 접근 할 수 있습니다.
다시 말해서, 이 접근 권한으로 지정된 변수 또는 메서드를 다른 객체에서 참조하거나 사용하는것이 불가능하고, 자신의 클래스 내에 있는 메서드만이 참조하거나 사용할 수 있습니다. 클래스가 제공하는 기능을 내부적으로 구현할 때 주로 사용하고, 이렇게 함으로써 완벽한 정보은닉이 가능합니다.
protected
같은 클래스, 하위 클래스, 또는 같은 패키지 내의 모든 클래스에서 접근 할 수 있습니다.
생략(default)
같은 클래스, 또는 같은 패키지내의 모든 클래스에서 접근 할 수 있습니다.
protected 접근 지정자와는 달리 하위 클래스에서는 접근할 수 없습니다.
static
객체를 생성하지 않고서도 멤버변수나 메서드를 사용할 수 있게 해줍니다.
final
클래스에 사용될 경우에는 상속불가의 의미이고 형식은 'final class 클래스이름 {}'입니다.
메서드에 사용될 경우에는 오버라이딩 불가의 의미이고 형식은 '접근제한자 final 리턴타입 메서드명() {}'입니다.
변수에 사용될 경우에는 상수의 의미이고 형식은 'final 데이터형 변수명;'입니다.