자바의 접근 제어자로는 총 네 가지가 있다.
public : 접근 제한 없음 (기본 값)
protected : 같은 패키지, 자식 클래스에서 접근
default : 같은 패키지 내에서 접근
private : 같은 클래스 내에서만 접근
class Car {
private int speed;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
}
class Person{
public String name;
public int age;
}
public class AccessPractice {
public static void main(String[] args) {
Car car = new Car();
car.setSpeed(10);
car.setName("TestCar");
System.out.println(car.getSpeed() + " " + car.getName());
car.setSpeed(20);
System.out.println(car.getSpeed() + " ");
Person person = new Person();
person.age = 20;
person.name = "kim";
System.out.println(person.age + " " + person.name);
person.age = -5;
System.out.println(person.age);
}
}
다음은 car클래스와 person클래스 예제이다.
car의 경우 변수를 private로 선언 person은 public으로 선언했다.
private으로 선언한 변수는 직접적인 접근을 하지 못하여 getter, setter로 접근할 수 있지만
public의 경우 직접적으로 값을 변경할 수 있다.
이렇게 직접적인 접근은 캡슐화에 위반되는 행위이다.
그 외 데이터 보호, 은닉 등의 역할도 한다.
'자바' 카테고리의 다른 글
| 자바 최신 문법 활용해보기 (스트림, 옵셔널, 스위치 표현식, 레코드, 인스턴스오프) (0) | 2025.02.20 |
|---|---|
| 자바 생성자 오버로딩(Overloading) // this, this()의 차이 (0) | 2024.05.27 |
| 자바 오버로딩(Overloading) (0) | 2024.05.27 |
| 자바 생성자 (0) | 2024.05.27 |
| 자바 while, do while문, continue, break (0) | 2024.05.27 |