minOS

자바의 정석 ch7-22 캡슐화 본문

TIL/남궁성의 자바의 정석

자바의 정석 ch7-22 캡슐화

minOE 2023. 12. 13. 17:40
728x90

ch7-22 캡슐화와 접근 제어자

- 캡슐화
캡슐화(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());
    }
}

출력

 

728x90