Java 프로그래밍에서 접근 제어자는 클래스의 멤버에 대한 접근 권한을 제어하는 데 사용된다.
이것은 코드의 가독성, 보안성, 재사용성을 높이는 중요한 요소 중 하나다.
1. public (공개)
가장 개방적인 접근 권한을 가짐으로 해당 멤버를 어디서든 자유롭게 접근할 수 있다.
//다른 클래스에서도 해당 멤버에 접근 가능
public class AccessClass {
public int publicField;
public void publicMethod() {
// public method code
}
}
2. private (비공개)
정보 은닉에 사용된다. 해당 멤버를 같은 클래스 내에서만 접근 가능하도록 제한한다.
public class AccessClass {
private int privateField;
private void privateMethod() {
// private method code
}
}
3. protected (보호)
상속과 관련되어 있다. 같은 패키지 내에서는 해당 멤버에 접근 가능하고, 다른 패키지의 하위 클래스에서도 접근 가능하다.
package protectedpackage;
public class AccessClass {
protected int protectedField;
protected void protectedMethod() {
// protected method code
}
}
package otherpackage;
import protectedpackage.AccessClass;
public class Subclass extends AccessClass {
public void accessProtected() {
protectedField = 10; // 상위 클래스의 protected 멤버에 접근 가능
protectedMethod(); // 상위 클래스의 protected 메서드에 접근 가능
}
}
4. default (패키지-private)
접근 제어자를 명시하지 않는 경우, 해당 멤버는 같은 패키지 내에서만 접근 가능하다.
다른 패키지에서는 접근할 수 없으며, 패키지 레벨의 접근 제어를 구현하는 데 사용된다.
package mypackage;
class AccessClass {
int defaultField; // 패키지-private
void defaultMethod() {
// default method code
}
}
핵심 내용
- 캡슐화(Encapsulation) - private 접근 제어자를 사용하여 멤버를 보호하고, getter와 setter 메서드를 통해 접근하는 방식으로 정보 은닉을 구현 가능하다.
- 상속(Inheritance) - protected 접근 제어자를 이용하여 하위 클래스에서 상위 클래스의 멤버에 접근할 수 있다.
- 패키지 관리 - 패키지 개념을 활용하여 default 접근 제어자를 사용하여 관련 클래스들 간의 접근을 제어할 수 있다.
- 다형성(Polymorphism) - public 접근 제어자를 사용하여 다형성을 구현하고, 다른 클래스에서 해당 멤버를 오버라이딩하거나 오버로딩할 수 있습니다.
반응형
'Dev > Spring&Java' 카테고리의 다른 글
[Java] 오버로딩(Overloading)과 오버라이딩(Overriding)이란 (0) | 2023.09.17 |
---|---|
[Java] 접근 제어자(Access Modifiers) 활용해보기 (0) | 2023.09.11 |
[Java] static 이해하기 (0) | 2023.09.09 |
[Spring] 이클립스에 Spring 프로젝트 생성 (STS4 설치) (0) | 2023.09.05 |
[SOLID] 좋은 객체 지향 설계 5가지 원칙 (0) | 2023.08.14 |