Java

[Java] 접근 제어자 (Access Modifier)

공대생안씨 2024. 7. 8. 22:22

1. 접근 제어자

  • 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용 or 제한
좋은 프로그램이란?
: 무한한 자유도가 주어지는 프로그램이 아니다.
⇒ 적절한 제약을 제공하는 프로그램이 좋은 프로그램이다!

 

1-1. 접근 제어자 종류

  1. private
    • 모든 외부 호출을 막음
    • 클래스 안으로 숨길 때 사용
  2. (default)
    • (package-private) 이라고도 함
    • 같은 패키지 안에서는 허용
    • 패키지 안으로 숨길 때 사용
  3. protected
    • 같은 패키지 안에서 호출 허용
    • (패키지가 달라도) 상속 관계 호출 허용
    • 상속 관계로 숨길 때 사용
  4. public
    • 모든 외부 호출 허용
    • 숨기지 않을 때 사용

📌 차단 순
       private > (default) > protected > public

 

1-2. 접근 제어자 사용 위치

  • 클래스
    • 클래스 레벨의 접근 제어자 : public, (default)만 사용 가능!
    • public 클래스
      • 하나의 자바 파일에 1개의 public 클래스만 존재 가능
      • 반드시 파일 이름과 동일한 클래스 이름!
    • (default) 클래스
      • 하나의 자바 파일에 여러개의 default 클래스 존재 가능
  • 예시 코드 (PublicClass.java 파일)
// PublicClass.java

// public 클래스는 오직 1개만 (파일명과 동일)
public class PublicClass {
	//
}

// default 클래스는 여러개 가능
class DefaultClass1 {
}

class DefaultClass2 {
}
  • 멤버 변수(필드)
  • 생성자
  • 메서드
📌 지역변수에는 접근 제어자 사용 x !!