Java

[Java] 접근 제어자

bornsoon 2025. 5. 3. 17:32

UML 표기법

  • - : private
  • ~ : default
  • # : protected
  • + : public
  • _ (속성이나 메서드 아래의 밑줄 표시) : 정적 멤버
public 모두가 접근 가능
protected 상속 / 같은 패키지 내의 클래스에서 접근 가능
[default] 같은 패키지 내의 클래스에서 접근 가능
private 본인만 접근 가능

 

 

  • 상속을 받지 않았다면 객체 멤버는 객체를 생성한 후 객체 참조 변수를 이용해 접근해야 한다.
  • 정적 멤버는 클래스명. 정적 멤버 형식으로 접근하는 것을 권장한다.

정적 메소드 (static 메소드) 안에서는 객체 변수 접근이 불가능!!!!


public인 정적 변수 pubSt 접근 범위

ClassA   ClassA.pubSt pubSt this.pubSt
사용 가능 사용 가능 사용 가능
같은 패키지 상속한 경우 사용 가능 사용 가능 사용 가능
상속하지 않은 경우 사용 가능 사용 불가 사용 불가
다른 패키지 상속한 경우 사용 가능 사용 가능 사용 가
상속하지 않은 경우 사용 가능 사용 불가 사용 불가

 

 

 

* 접근 범위 이해를 위한 예제:

https://github.com/expert0226/oopinspring/blob/master/workspace_springjava/Chap03/src/encapsulation01/packageOne/ClassB.java

 

oopinspring/workspace_springjava/Chap03/src/encapsulation01/packageOne/ClassB.java at master · expert0226/oopinspring

스프링 입문을 위한 (자바) 객체 지향의 원리와 이해. Contribute to expert0226/oopinspring development by creating an account on GitHub.

github.com

 

 

 

 

출저 : 스프링 입문을 위한 자바 객체 지향의 원리와 이해

728x90