컴퓨터프로그래밍/JAVA

JAVA - 접근 제한자.

zelkova 2013. 9. 30. 09:51

 <목차로 돌아가기>


어떤 클래스를 설계할 때 변수나 함수가 클래스 내부에서만 필요에 의해 사용되고 외부로는 그 자세한 내용이 알려질 필요가 없는 경우가 많다. 


즉 부품을 만든 사람만 복잡하게 생각하고 사용하는 사람은 간단한 것만을 알아도 사용이 가능하게 해야 하는 것이다. 이런 요구를 충족시키기 위해 멤버변수나 함수에 접근등급이 도입 되었다. 


이것이 바로 제한자이다. 이런 제한자는 접근을 제어하기 위한public제한자. 동기화를 위한 synchornized 제한자 등 여러 제한자가 있다. 


제한자의 종류

public, private, protected, default, final, abstract, static, native, synchronized, transient, volatile


접근 제한자

1. 클래스, 메소드, 변수의 접근 범위를 지정하기 위해 사용하는 제한자를 말함

2. 접근 제한자에는 public, protected, private가 있음

3. 접근 제한자가 선언되지 않은 경우는 default(friendly, package)제한자라 부르고    기본적으로 public 이 선언됨.



접근 제한자의 접근 범위

 

public

protected

default

private

같은 패키지, 같은 클래스

허용

허용

허용

허용

같은 패키지, 상속 관계

허용

허용

허용

불용

같은 패키지, 상속 관계 아님

허용

허용

허용

불용

다른 패키지, 상속 관계

허용

허용

불용

불용

다른 패키지, 상속 관계 아님

허용

불용

불용

불용



public 제한자

가장 일반적이면서 가장 큰 접근 범위를 가지는 접근 제한자.

1. 가장 일반적이면서 가장 큰 접근 범위를 가지는 접근 제한자.

2. 선언된 클래스, 다른 클래스, 다른 패키지 등 모든 곳에서 접근 가능

3. 클래스, 내부 클래스, 생성자, 메소드, 변수에 모두 선언 가능

*여기서 말하는 클래스는 최상위 클래스(Top-level class)를 의미함.


default 제한자.

1.접근 제한자를 선언하지 않았을 경우 기본적으로 부여되는 접근 범위를 의미

2. 같은 패키지에 포함되어 있는 클래스의 접근만 허용

3. 클래스, 내부 클래스, 생성자, 메소드 변수에 모두 적용 기능

4. friendly, package 제한자라 부르기도 함


protected 제한자

1.public 제한자보다 작고 default 제한자보다 큰 범위를 가지는 접근 제한자.

2. 같은 패키지에 포함되어 있는 클래스는 접근 가능

3. 다른 패키지더라도 protected 제한자로 선언된 멤버가 포함된 클래스를 상속했다면 접근 가능

4. 내부 클래스, 생성자, 메소드, 변수에 모두 적용 가능


private제한자.

1.가장 작은 접근 범위를 가진 접근 제한자.

2. 선언된 클래스 내부에서만의 접근을 허용

3. 내부 클래스, 생성자, 메소드, 변수에 선언 기능(클래스에는 선언할 수 없음)


반응형

'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글

JAVA연산자  (0) 2013.10.05
JAVA - 기타 제한자.  (0) 2013.10.04
JAVA - 검증, 예외  (0) 2013.09.30
JAVA - 분기문  (0) 2013.09.30
JAVA - 조건문 IF  (0) 2013.09.29