Java

[Java] 자바 접근제어자(public, protected, default, private)

하부루 2024. 9. 16. 17:38

Java 접근 제어자 종류

  • 자바에서 접근 제어자는 클래스, 메서드, 변수 등에 대한 접근 범위를 제어하기 위해 사용
  • 접근 제어자를 적절하게 사용하는 것은 코드의 캡슐화와 보안성을 높이는 데 매우 중요
  • 자바에서 사용할 수 있는 주요 접근 제어자는 네 가지(public, protected, default, private)

 

[ Public ]

  • 정의 :
    • 클래스, 메서드, 변수 등이 public으로 선언
    • 모든 클래스에서 접근 가능
  • 특징 :
    • 어디서든 접근 가능
    • 다른 패키지에서도 접근 가능
    • API 클래스와 메서드 등에 주로 사용

Public

[ Protected ]

  • 정의 :
    • 클래스, 메서드, 변수 등이 protected로 선언
    • 동일 패키지 내의 클래스와 상속 관계에 있는 하위 클래스에서 접근 가능
  • 특징 :
    • 동일 패키지 내에서 접근 가능
    • 다른 패키지의 하위 클래스에서도 접근 가능
    • 상속 관계에서 접근을 허용하고 싶을 때 사용
     

Protected

[ Default ]

  • 정의 :
    • 접근 제어자를 명시하지 않으면, 기본 접근 제어자인 default가 적용
    • 동일 패키지 내의 클래스에서만 접근 가능
  • 특징 :
    • 동일 패키지 내에서만 접근 가능
    • 다른 패키지에서는 접근 불가
    • 패키지 내부 구현에 대해서만 접근을 허용하고 싶을 때 사용
     

Default

[ Private ]

  • 정의 :
    • 클래스, 메서드, 변수 등이 private으로 선언
    • 해당 클래스 내에서만 접근 가능
  • 특징 :
    • 같은 클래스 내에서만 접근 가능
    • 외부 클래스 및 하위 클래스에서 접근 불가
    • 정보 은닉을 위해 사용
     

Private

 

Java 접근 제어자의 역할

[ 캡슐화(Encapsulation) ]

  • 캡슐화는 객체 지향 프로그래밍의 핵심 원칙 중 하나
  • 데이터를 보호하고 외부에서 직접 접근하지 못하도록 제한하는 것을 의미
  • 접근 제어자를 사용하면 클래스 내부의 구현 세부 사항을 감추고, 외부에서는 필요한 부분만 접근하도록 제한함.

캡슐화

 

[ 정보 은닉(Information Hiding) ]

  • 정보 은닉은 클래스 내부의 데이터와 메서드를 숨겨 외부에서 보거나 수정할 수 없게 하는 것
  • 이는 내부 구현의 복잡성을 감추고, 외부 코드가 내부 구현에 의존하지 않도록 함

정보은닉

 

[ 유지보수성(Maintainability) ]

  • 접근 제어자를 사용하면 코드의 유지보수성을 높일 수 있음
  • 메서드나 변수를 외부에서 접근하지 못하게 하여 내부 구현을 변경해도 외부 코드에 영향을 주지 않게 할 수 있음

유지보수성

 

[ 코드의 안전성(Safety) ]

  • 접근 제어자는 코드의 안전성을 높이는 데 기여
  • 중요한 데이터를 보호하고, 외부에서 직접 접근하여 잘못된 값을 설정하거나 수정할 위험을 줄임

코드 안정성

 

접근 제어자 요약

접근제어자 요약

  • 적절한 접근 제어자를 사용함으로써 클래스의 내부 구현을 외부로부터 보호
  • 코드의 유지보수성을 높일 수 있음
  • 필요한 경우에만 접근 권한을 부여하여 클래스와 메서드 간의 의존성을 최소화하는 것이 좋음