-
[JAVA]접근제한자기초/JAVA 2017. 1. 19. 10:48
접근제한자
말 그대로 접근을 제한하는 [예약어]입니다.
변수나 메소드, 클래스 앞에 붙여서 접근에 제한을 두는 방식인데요
크게 public, private, protected 3가지가 있습니다.
public
public은 main 함수에서도 사용했다 싶이 [전부 다쓰게 하고싶어!]할떄 사용하는 예약어 입니다.
private
private은 public과 반대로 외부의 접근을 완전히 차단하는데요.
클래스, 메소드 변수의 접근을 다 금지 시키는 거예요!
protected
protected은 일부만 접근을 허락하는데요
허락하는 대상은 같은 package안에서만 공유를 허락하는 예약어 입니다.
(개방)public ------protected--------- private(차단)
라고 생각하시면 편하실꺼 같아요!
public
protected
private
같은 프로젝트
O
X
X
같은 패키지
O
O
X
같은 클래스
O
O
O
캡처사진을 보면 TestA 패키지안에 TestA, Main클래스가 있고
TestB 패키지안에 TestB, TestC, TestD 클래스가 있습니다
Main클래스 안에서
TestA, TestB, TestC 객체를 생성하려고 하는데
public으로 선언된 TestA, TestB는 생성이 잘되지만
protected로 선언된 TestC는 다른패키지인 Main클래스에서
생성되지 않습니다.
비교할수 있도록 같은패키지에 있는 TestB클래스에서 TestC를 생성해보니 잘되네요.
하지만 private로 선언된 TestD는 같은패키지라도 TestB클래스에서
생성되지 않는다는것을 볼 수 있습니다.
설계자가 설계할때 누가 어느 메소드를 사용할 수 있는지 권한부여의미로
사용할 수 있겠네요!
'기초 > JAVA' 카테고리의 다른 글
[JAVA]오버로딩 오버라이딩 (0) 2017.01.20 [JAVA] 상속(추상클래스,인터페이스) (2) 2017.01.19 [JAVA]클래스와 메소드 (0) 2017.01.18 [JAVA] 배열 (0) 2017.01.18 [JAVA] 랜덤 (0) 2017.01.18