반응형
자바에서 **접근 제어자(Access Modifier)**는 클래스, 변수, 메서드 등에 외부에서 접근 가능한 범위를 지정하는 키워드입니다. 잘 활용하면 캡슐화와 보안성, 유지보수성을 높일 수 있습니다.
✅ 1. 접근 제어자란?
접근 제어자는 다음 4가지가 있습니다:
제어자클래스 내같은 패키지자식 클래스(다른 패키지)전체 접근
private | ✅ | ❌ | ❌ | ❌ |
(default) | ✅ | ✅ | ❌ | ❌ |
protected | ✅ | ✅ | ✅ | ❌ |
public | ✅ | ✅ | ✅ | ✅ |
🔒 2. private – 가장 제한적인 제어자
- 같은 클래스 내에서만 접근 가능
- 외부 클래스나 상속 클래스에서도 접근 불가
📌 예시
public class BankAccount {
private int balance = 1000;
private void showBalance() {
System.out.println("잔액: " + balance);
}
}
외부에서 balance나 showBalance()에 접근하면 컴파일 오류 발생
🏠 3. (default) – 패키지 전용 접근
- 접근 제어자를 명시하지 않으면 기본(default) 적용
- 같은 패키지 내에서는 접근 가능, 다른 패키지에서는 불가
📌 예시
class PackageHelper {
void help() {
System.out.println("패키지 전용 도우미 클래스");
}
}
🛡️ 4. protected – 상속 관계까지 허용
- 같은 패키지 + 다른 패키지의 자식 클래스에서 접근 가능
- 외부 클래스에서는 접근 불가
📌 예시
public class Parent {
protected String familyName = "Kim";
}
public class Child extends Parent {
void showName() {
System.out.println(familyName); // 가능
}
}
🌍 5. public – 어디서든 접근 가능
- 모든 클래스에서 접근 가능
- 라이브러리나 외부에서 자주 사용되는 API에 주로 사용
📌 예시
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
}
🧠 6. 정리 요약
접근 제어자 | 설명 | 사용 예시 |
private | 클래스 내부 전용 | 필드, 내부 메서드 보호 |
default | 같은 패키지 허용 | 패키지 수준 유틸리티 |
protected | 상속 + 같은 패키지 | 상속 클래스 공유 속성 |
public | 어디서나 접근 가능 | 공용 API, 라이브러리 |
🚀 마무리
접근 제어자는 객체 지향 설계의 핵심 도구입니다. 불필요한 접근을 차단하고, 필요한 부분만 외부에 노출하여 유지보수가 쉽고 안전한 코드를 작성할 수 있습니다. 다음 단계로는 getter/setter 패턴, **정보 은닉(Information Hiding)**과의 관계도 공부해보세요!
반응형
'자바 > 객체 지향 프로그래밍' 카테고리의 다른 글
자바의 다형성(Polymorphism) 완전 이해하기 (0) | 2025.04.29 |
---|---|
자바의 오버로딩(Overloading)과 오버라이딩(Overriding) 완전 정복 (1) | 2025.04.28 |
상속(Inheritance)과 코드 재사용 - 자바 객체지향 설계의 핵심 (1) | 2025.04.27 |
생성자(Constructor), this, super 키워드 완전 정복 (2) | 2025.04.25 |
클래스와 객체 - 자바 객체 지향의 핵심 개념 완전 정복 (1) | 2025.04.24 |