Java

[JAVA] 접근 제한자, 접근 지시자, public, private, protected, default

촙오 개발자 2025. 1. 24. 22:24
반응형

접근 제한자

클래스, 변수, 함수 등에 대한 접근 권한을 설정하는 데 사용

 

  • public
  • private
  • protected
  • private

 

public

  • 접근 범위 : 어디서나 접근 가능(클래스 내부, 같은 패키지, 다른 패키지, 외부 클래스)
  • 사용 상황 : 다클 클래스나 패키지에서 자주 접근해야 하는 클래스, 변수, 함수 등에 사용

 

private

  • 접근 범위 : 같은 클래스 내에서만 접근 가능
  • 사용 상황 : 외부에서 접근할 필요가 없는 변수가 함수를 감추기 위해 사용

protected

  • 접근 범위 : 같은 패키지 또는 하위 클래스에서 접근 가능
  • 사용 상황 : 상속 관계에서 하위 클래스가 접근할 필요가 있을 때 사용

 

default

  • 접근 범위 : 같은 패키지에서만 접근 가능
  • 사용 상황 : 같은 패키지 내부에서만 사용할 클래스나 함수일 때 사용

 

package example1;

public class Human {
	public String publicString = "public String";
	private String privateString = "private String";
	protected String publicString = "protected String";
	String publicString = "default String";
}

 

package example2;

public class Man extends Human {
	public void access() {
		System.out.println(publicString); // public String
		System.out.println(protectedString); // protected String (상속 받았기 때문에 가능)
		System.out.println(privateString); // 접근 불가
		System.out.println(defaultString); // 에러 다른 패키지이기 때문에 접근 불가
	}
}

 

package example1;

public class Woman extends Human {
	public void access() {
		System.out.println(publicString); // public String
		System.out.println(protectedString); // protected String (상속 받았기 때문에 가능)
		System.out.println(privateString); // 접근 불가
		System.out.println(defaultString); // default String (같은 패키지이기 때문에 가능)
	}
}

 

 

위 예제를 보고 상황에 맞게 접근제한자를 사용하면 된다.

반응형