public class Time {
public int hour;
public int minute;
public int second;
}
Time t = new Time();
t.hour = 25;
외부에서 해당 데이터에 자유롭게 접근할 수 있다.
예제 2
public class Time {
private int hour;
private int minute;
private int second;
public int getHour() { return hour; }
public void setHour(hour) {
if (isNotValidHour(hour)) return;
this.hour = hour;
}
// 해당 클래스에서만 사용하는 메서드 => 외부에 노출시킬 필요 없음
private boolean isNotValidHour(int houre) {
return hour < 0 || hour > 23;
}
}
Time t = new Time();
t.hour = 25; // 🚩에러
t.setHour(25); // ✅성공
hour 변수의 접근 제어자를 private으로 설정했으므로 외부에서 직접 접근을 할 수 없다.
접근 제한이 없는 setHour 메서드를 통해 세팅값을 검증한 후, 멤버변수에 값을 세팅한다.