- 캡슐화 캡슐화(encapsulation)는 객체 지향 프로그래밍(OOP)에서 중요한 개념 중 하나로, 데이터와 해당 데이터를 다루는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다. 이를 통해 객체의 내부 구현을 숨기고, 객체 간의 상호 작용을 보다 안전하게 만들 수 있다. - 접근 제어자 사용 접근 제어자(access modifier)는 캡슐화를 구현하는 데 사용되는 도구 중 하나로, 클래스의 멤버(변수, 메서드 등)에 대한 접근 권한을 제어하는 역할을 한다. 접근 제어자를 사용하여 클래스의 멤버에 대한 접근을 제한함으로써, 캡슐화를 강화하고 객체의 내부 구현을 안전하게 보호할 수 있다.
Time 클래스의 각 멤버 변수와 메서드 캡슐화
class Time {
private int hour; // 시간을 나타내는 변수, 외부에서 직접 접근하지 못하도록 private으로 설정
private int minute; // 분을 나타내는 변수
private int second; // 초를 나타내는 변수
// 시간(hour)을 설정하는 메서드, 외부에서 유효한 범위(0~23)의 값만 설정 가능
public void setHour(int hour){
// 시간이 유효한 범위인지 확인하고, 유효하지 않으면 설정을 하지 않고 리턴
if(hour < 0 || hour > 23) {
System.out.println("유효하지 않은 시간 값입니다. 시간은 0부터 23까지의 값이어야 합니다.");
return;
}
this.hour = hour;
}
// 시간(hour)을 반환하는 메서드
public int getHour(){
return hour;
}
}
public class TimeTest {
public static void main(String[] args) {
Time time = new Time();
// 시간을 설정하고, 설정된 값을 출력
time.setHour(10);
System.out.println("현재 시간: " + time.getHour());
// 유효하지 않은 값을 설정하려고 시도하면 메시지를 출력
time.setHour(200);
System.out.println("현재 시간: " + time.getHour());
}
}