반응형
안녕하세요. 여행하는 개발자입니다.
이번 포스팅에서는 Java에서의 접근 제어자(private, protected, public)의 차이점과 사용 예에 대해 정리해보겠습니다.
접근 제어자란?
접근 제어자는 클래스, 필드, 메소드 등에 외부에서 접근할 수 있는 범위를 지정하는 키워드입니다.
Java에서 사용하는 대표적인 접근 제어자는 private
, protected
, public
이 있습니다.
접근 제어자 비교표
제어자 | 동일 클래스 | 동일 패키지 | 상속 클래스 | 다른 클래스 |
---|---|---|---|---|
private | O | X | X | X |
default (명시 안함) | O | O | X | X |
protected | O | O | O | X |
public | O | O | O | O |
✅ 1) private
private
는 가장 제한적인 접근 권한으로, 해당 클래스 내부에서만 접근이 가능합니다.
public class User {
private String name;
private void printName() {
System.out.println(name);
}
}
✅ 2) protected
protected
는 동일 패키지 + 상속 클래스에서 접근 가능합니다.
public class Animal {
protected String type = "동물";
}
public class Dog extends Animal {
public void printType() {
System.out.println(type); // 접근 가능
}
}
✅ 3) public
public
은 어디서든 접근 가능한 가장 개방적인 접근 제어자입니다.
public class HelloWorld {
public void greet() {
System.out.println("Hello!");
}
}
결론
private
: 클래스 내부 전용 (캡슐화용)protected
: 상속과 패키지 내부에서 공유할 때 사용public
: 모든 클래스에서 접근 가능하게 할 때 사용
접근 제어자는 클래스 설계의 안정성과 보안성을 높이는 핵심 도구입니다.
기본값이 아닌 의도적으로 제어자를 설정하는 습관을 들이세요!
반응형
'개발 Story > Java' 카테고리의 다른 글
[Java] HashMap과 HashSet 차이 (0) | 2025.06.24 |
---|---|
[Java] 람다식(Lambda)의 개념 및 사용법 (1) | 2025.06.17 |
[Java] String, StringBuffer, StringBuilder 차이 (0) | 2025.06.16 |
[Java] int와 Integer 차이 (0) | 2025.06.16 |
[Java] 인터페이스(Interface) vs 추상 클래스(Abstract Class) (0) | 2025.06.02 |