Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발계발

접근 제한자 본문

자바

접근 제한자

Ju_Nik_E 2024. 4. 26. 21:10
경우에 따라서 객체의 필드를 외부에서 변경하거나 메소드를 호출할 수 없도록 막야한다.
이런 경우를 위해서 자바에서는 public, protected, private라는 접근 제한자를 제공한다.

 

접근 제한자 제한 대상 제한 범위
public 클래스, 필드, 생성자, 메서드 없음
protected 필드, 생성자, 메소드 같은 패키지, 자식 객체만 사용 가능
(default) 클래스, 필드, 생성자, 메소드 같은 패키지
private 필드, 생성자, 메소드 객체 내부

 

클래스의 접근 제한

클래스는 public과 default 접근 제한을 가질 수 있다.
클래스 작성 시 기본적으로 public 키워드를 많이 사용하는 데, 생략할 경우 default 접근 제한을 가지게 된다.
default의 경우, 같은 패키지에서만 사용가능하게 된다.

 

생성자의 접근 제한

생성자는 public, default, private 접근 제한을 가질 수 있다.

 

public : 모든 패키지에서 생성자 호출 가능(객체 생성 가능)

default : 같은 패키지에서만 생성자 호출 가능

private : 클래스 내부에서만 생성자 호출 가능

필드와 메소드의 접근 제한

필드와 메소드도 생성자와 동일하게 public, default, private 접근 제한을 가질 수 있다.

 

public : 모든 패키지에서 필드를 읽고 변경 / 메소드를 호출할 수 있다.

default : 같은 패키지에서만 필드를 읽고 변경 / 메소드를 호출할 수 있다.

private : 클래스 내부에서만 필드를 읽고 변경 / 메소드를 호출할 수 있다.

 

결론

클래스만 [public, default] (private 사용불가, private는 "클래스 내부에서만"인데, 클래스를 클래스 내부에서? 말이 안됨)
생성자, 필드, 메소드는 [public, default, private] 가능

 

가장 상단에 잠깐 언급했던 protected 접근 제한자는 이후 상속 포스팅에서 다룰 예정.

'자바' 카테고리의 다른 글

추상 클래스와 봉인 클래스  (0) 2024.04.26
상속  (1) 2024.04.26
final 키워드  (0) 2024.04.26
인스턴스 멤버와 정적 멤버  (0) 2024.04.26
객체 지향 프로그래밍  (0) 2024.04.26