본문 바로가기
JAVA-Spring/캡슐화

JAVA 자바 [ 객체 지향 프로그래밍 ] 캡슐화 활용 _ 접근지정자

by Super Santj 2019. 7. 22.

JAVA 자바에서 접근 지정자(=접근 권한자)는 외부에서 필요로하는 클래스를 불러올때 사용하는 지정자를 의미한다.

접근지정자는 아무 말이없다면 멤버변수 또는 메소드에 부여를 한다.

1. private 접근 지정자

같은 패키지(=폴더) 에서는 접근이 불가한다. 그리고 다른 패키지에서도 접근이 안된다.

접근이 가능한 유일한 범위는 자기 클래스 내에서만 사용이 가능한것이다.

2. (default) 접근 지정자

- 같은 패키지에 있는 클래스들 끼리 접근 가능

- 자기 클래스내에서도 접근 가능

- 다른 패키지에 있는 클래스 접근 금지

- 다른 패키지에 있는 상속받은 자식클래스의 객체를 통해서도 접근이 불가능

default 권한 -> 멤버변수와 메소드 앞에 아무것도 접근 지정자를 부여하지 않음

3. protected 접근 지정자

- 같은 패키지에 있는 클래스들끼리 접근 가능

- 자기 클래스내에서도 접근 가능

- 다른 패키지에 있는 클래스 접근 금지

- 다른 패키지에 있는 상속받은 자식클래스의 객체를 통해서도 접근이 가능

4. public 접근 지정자

- 같은 패키지에 있는 클래스들기리 접근 가능

- 자기 클래스내에서도 접근 가능

- 다른 패키지에 있는 클래스에도 접근 가능

- 다른 패키지에 있는 상속 받은 자식 클래스의 객체를 통해서도 접근이 가능

하지만, 예외가 있다. 접근지정자가 멤버변수, 메소드에게만 부여하는것이 아니다. 클래스 앞에도 접근 지정자를 부여할 수가 있다.

public class A로 작성한다는 전제조건 => 제한없이 다 사용이 가능

                 내부 패키지의 클래스도 접근 (O) + 외부 패키지의 클래스도 (O)

class A로 작성 => 내부 패키지의 클래스도 접근(O)
                        외부 패키지의 클래스는  (X)

즉 접근 권한자의 범위 순위는

private < default < protected < public

로 이해하면된다.

댓글