개발 & 데이터베이스/JAVA

[JAVA] 접근 제한자 종류와 차이(public, private, protected, default)

K.두부 2022. 6. 27. 23:27
반응형

오늘은 자바(Java)에서의 접근 제한자(Access Modifier)에 대해서 알아보겠습니다. 접근 제어자는 클래스 내부와 외부 및 인터페이스, 변수 등의 접근을 제어하는 역할을 갖고 있습니다. 상황에 따라서 클래스 혹은 인터페이스를 다른 패키지에서 사용하지 못하도록 막을 수도 있고, 반대로 사용할 수 있게끔 만들 수 있습니다.

접근 제한자는 총 3가지로 public, protected, private의 종류가 있고 접근 제한자를 생략하는 경우에 설정되는 default 접근 제한자가 있습니다.

  • public 접근 제한자: 외부 클래스가 자유롭게 사용할 수 있음
  • protected 접근 제한자: 같은 패키지 또는 자식 클래스에서 사용할 수 있음
  • private 접근 제한자: 같은 패키지의 외부에서도 사용할 수 없음
  • default 접근 제한자: 같은 패키지에 소속된 클래스에서만 사용할 수 있음

우선 접근 제한자를 자세히 알아보기 전에 접근 제한자의 특징을 확실히 알고가기 위해서 임의의 패키지 2개를 생성했다고 가정하고 시작하겠습니다.

1. default 접근 제한자

 ⑴ 같은 패키지 내에서만 허용

 ⑵ 같은 패키지 내의 다른 클래스에서 허용

 ⑶ 다른 패키지에서는 불가 (package1에서 사용한 걸 package2에서 사용 불가능)

 

2. public 접근 제한자

 ⑴ 모든 패키지에서 접근 허용(package1에서 사용한 걸 package2의 클래스에서 사용 가능)

 

3. protected 접근 제한자

 ⑴ 같은 클래스 내에서 허용

 ⑵ 같은 패키지의 다른 클래스에서 허용

 ⑶ 다른 패키지의 자식 클래스에서 허용

 ⑷ 다른 패키지의 다른 클래스는 불가

 

4. private 접근 제한자

 ⑴ 같은 클래스에서의 같은 클래스에서만 허용

 

반응형