접근제한자끼리의 상관관계

Hyun·2023년 3월 21일
0

자바 문법

목록 보기
4/8

자바에서는 클래스, 생성자, 필드 및 메서드 등등을 접근 제한자로 사용을 제한할 수 있다.

제일 넓은 범주인 클래스의 접근을 제한하면 생성자 접근도 당연히 제한되고, 따라서 필드와 메서드도 사용을 못하게 되는 식이다.

클래스, 생성자, 필드 및 메스드의 각각의 접근 제한자의 의미는
클래스 -> 생성자 -> 필드 및 메서드 순으로 접근 제한의 범위를 좁혀가는 것이다.
(클래스를 제한했다가 -> 클래스는 두고 생성자만 제한했다가 -> 클래스, 생성자는 두고 필드 및 메서드만 제한)

예를 들어 클래스가 default 인데 생성자가 private 이라던지, 클래스가 public 인데 생성자가 default인 경우가 올바른 접근제한자의 사용이다.

하지만 클래스가 default 인데 생성자가 public 일 수는 없다. 클래스가 같은 패키지에서 사용가능한데 생성자가 모든 패키지에서 사용될 수는 없는 따름이다.

만약 올바른 예로, 클래스가 public 이면서 생성자가 default 이면
다른 패키지에서 해당 클래스를 사용할 수는 있지만(ex. 정적 멤버 사용), 생성자는 사용할 수 없으므로 객체는 생성할 수 없게 된다.

profile
better than yesterday

0개의 댓글