접근제어 지시자?
- 접근의 허용범위를 제한하는 용도로 사용되며 public private, protected이렇게 세가지이지만, 아무런 선어도 하지 앟은경우(default)를 포함하여
총 4가지의 형태의 접근제어 선언이 가능하다.
■ private/public
- private로 선언되는 인스턴스 변수와 메소드는 선언된 클래스내부에서만 접근이 가능하다.
- public으로 선언되는 인스턴스변수, 메소드는 어디서든지 접근이 가능하다.
위 예제에서 인스턴스변수 val은 public으로 선언되어 외부에서 접근이 가능하지만, 인스턴스변수 num은 private로 선언이 되었기때문에 외부에서
접근이 불가능하다. 따라서 num에 접근하기위해서는 간적적으로 접근을 허용할수있는 접근자 메소드를 선언해주어야한다.
■ protected / default
- default는 같은패키지내에있는 클래스만 접근이 가능하도록 제어한다.
val은 private, num은 protected로 선언되어있다. Test2클래스는 Test1클래스와 SimpleExam이라는 같은 패키지로묶여있기때문에 Test2에서 val,
num으로 접근이 가능하다.
Test3클래스는 Test1을 상속받은 클래스이기때문에 protected로 선언된 num에 접근이 가능하다.
■ 접근제어지시자 허용범위
- 접근의 허용범위를 제한하는 용도로 사용되며 public private, protected이렇게 세가지이지만, 아무런 선어도 하지 앟은경우(default)를 포함하여
총 4가지의 형태의 접근제어 선언이 가능하다.
■ private/public
- private로 선언되는 인스턴스 변수와 메소드는 선언된 클래스내부에서만 접근이 가능하다.
- public으로 선언되는 인스턴스변수, 메소드는 어디서든지 접근이 가능하다.
위 예제에서 인스턴스변수 val은 public으로 선언되어 외부에서 접근이 가능하지만, 인스턴스변수 num은 private로 선언이 되었기때문에 외부에서
접근이 불가능하다. 따라서 num에 접근하기위해서는 간적적으로 접근을 허용할수있는 접근자 메소드를 선언해주어야한다.
public void setNum(int n) : private로 선언된 num값을 변경
public void getNum(int n) : private로 선언된 num값을 반환
※ 접근자 메소드는 public으로 선언되어 다른 클래스에서 접근자메소드로는 접근이 가능하도록 한다.
public void getNum(int n) : private로 선언된 num값을 반환
※ 접근자 메소드는 public으로 선언되어 다른 클래스에서 접근자메소드로는 접근이 가능하도록 한다.
■ protected / default
- default는 같은패키지내에있는 클래스만 접근이 가능하도록 제어한다.
- protected는 같은패키지내의 클래스 혹은 상속받은 클래스에만 접근이 가능하도록 제어한다.
※ protected = default + 상속받은 클래스
※ protected = default + 상속받은 클래스
val은 private, num은 protected로 선언되어있다. Test2클래스는 Test1클래스와 SimpleExam이라는 같은 패키지로묶여있기때문에 Test2에서 val,
num으로 접근이 가능하다.
Test3클래스는 Test1을 상속받은 클래스이기때문에 protected로 선언된 num에 접근이 가능하다.
■ 접근제어지시자 허용범위
※ 생성자에 적절한 접근제어지시자를 사용하여 인스턴스생성범위를 조절할수도있다.
'Developer > Java' 카테고리의 다른 글
HashMap value를 정렬하는 방법 (0) | 2012.07.18 |
---|---|
Java GUI - JOptionPane (0) | 2012.07.12 |
배열의 복사 (0) | 2012.07.04 |
클래스변수, 클래스메서드 (0) | 2012.07.04 |
Java의 기본 (0) | 2012.07.04 |