접근제어자는 클래스, 변수, 메서드, 생성자의 접근 범위를 제한하는 키워드

public class Person {
private String secret;
public String getSecret() {
return this.secret; // 객체의 secret 속성 반환
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person();
//p1.secret; // 직접 접근 불가능
String newSecret = p1.getSecret(); // getter를 활용해 접근가능
}
}
getter를 통해 private 변수의 값 확인
public class Person {
private String secret;
public void setSecret(String secret) {
this.secret = secret; // secret 속성 설정 및 변경
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person();
//p1.secret = "password"; // 직접접근, 변경 불가능
p1.setSecret("newPassword"); // 세터를 활용해 접근, 변경가능
}
}
setter를 통해 값을 변경해줄 수 있음
캡슐화
-> 데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어 외부에서의 접근을 제어
속성과 기능을 하나로 묶고 외부에 꼭 필요한 기능만 노출하고 나머지는 숨김
1.데이터 숨기기
객체의 데이터는 객체가 제공하는 기능인 메서드를 통해 접근해야함
2.기능 숨기기
외부에서 사용하지 않고 내부에서만 사용하는 기능들은 모두 숨기는게 좋음