코딩/Java

자바 접근제어자

메소드가 키워드 private으로 시작되고 있다. private은 클래스A 밖에서는 접근 할 수 없다는 의미다. 바로 이 private의 자리에 오는 것들을 접근 제어자(access modifier)라고 한다. 그럼 사용할 수 없는 메소드를 왜 정의하고 있는 것일까? 내부적으로 사용하기 위해서다.

클래스A의 x는 접근제어자가 public이기 때문에 AccessDemo 클래스에서 접근이 가능하다. 여기서 알 수 있는 점이 있다 a.z()로 A클래스의 z메소드를 쓰려고 했을 땐 되지 않았는데 x메소드를 이용해 z메소드의 기능을 사용했다. 즉 private는 내부적으로만 사용이 가능하다는 뜻이다.

 

proteced, default 같은클래스, 같은 패키지 접근 가능 그런데
상속 관계라면 proteced는 접근가능하다
public
- 아무데서나 불러다 쓸 수 있고

protected
같은 클래스 , 같은 패키지 사용
// 상속해서 써야 한다.

default
같은 팩키지, 클래스 사용
// 상속불가

private
// 같은 클래스 외에 사용금지

접근제어자가 public이면 다른패키지에도 사용 가능하다.
default면 같은 패키지에서만 사용이 가능하다.

'코딩 > Java' 카테고리의 다른 글

자바 interface  (0) 2020.12.24
자바 abstract  (0) 2020.12.24
자바 접근제어자  (0) 2020.12.23
자바 상속  (0) 2020.12.22
자바 클래스와 인스턴스의 활용  (0) 2020.12.22
자바 생성자와 this  (0) 2020.12.22