Ch7-22. 캡슐화
0. 목차
Chapter7. 객체지향 프로그래밍Ⅱ
Ch7 - 22. 캡슐화와 접근제어자
Ch7 - 22. 캡슐화와 접근제어자
▶ 접근제어자를 사용하는 이유?
▷ 외부로부터 데이터를 보호(캡슐화)하기 위해서
public class Time {
public int hour; // 범위 : 0 ~ 23
public int minute; // 범위 : 0 ~ 59
public int second; // 범위 : 0 ~ 59
}
class TimeTest {
public static void main(String[] args) {
Time time = new Time();
time.hour = 100; // 범위 초과 방지 못함
}
}
▷ 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서
- 접근제어자의 범위는 좁은 게 좋음
- 필요 시 점점 넓혀가는 게 좋음
▶ 실습
▷ 조건문 기능 분리
- 메서드 추출 : alt + shift + M
package baek;
public class Time {
private int hour;
private int minute;
private int second;
public void setHour(int hour) {
if (isNotValidHour(hour)) return;
this.hour = hour;
}
// 매개변수로 넘겨진 hour가 유효한지 확인해서 알려주는 메서드, 내부에서만 사용 private
private boolean isNotValidHour(int hour) {
return hour < 0 || hour > 23;
}
public int getHour() { return hour; }
}
class TimeTest {
public static void main(String[] args) {
Time time = new Time();
time.setHour(20);
System.out.println(time.getHour());
}
}