본문 바로가기
✏️Java 공부/기타 등등

[Java 공부/ 기타] 클래스 내에서 데이터에 제약조건 걸기

by 코코의 주인 2022. 3. 8.

Time 클래스 안에서 private으로 hour, minute, second를 선언하여 클래스의 외부에서 접근할 수 없도록 하였다. 때문에 클래스 안의 변수들에 접근하기 위해서는 반드시 클래스 안의 메소드를 거쳐야 한다.

class Time {    //time 클래스
    private int hour;       //시
    private int minute;     //분
    private float second;   //초
}

 

 아래 코드는 input을 입력받아 데이터의 유효성을 검증한 뒤 유효성 여부에 따라 hour의 값을 변경하는 메서드의 코드다.

 input이 '시'를 나타내기 때문에 입력된 데이터가 0~23의 범위 안에 있어야만 유효한 값으로 인정한다.

    public void setHour(int input) {        //input에 대한 hour 제약조건 검증
        if(input < 0 || input > 23)	//input이 0 ~ 23 안에 없으면
            return;
        hour = input;   //input 값을 hour에 입력
    }

전체 코드

class Time {    //time 클래스
    private int hour;       //시
    private int minute;     //분
    private float second;   //초

    public int getHour() {      //시 반환
        return hour;
    }
    public int getMinute() {    //분 반환
        return minute;
    }
    public float getSecond() {  //초 반환
        return second;
    }
    
    public void setHour(int input) {        //input에 대한 hour 제약조건 검증
        if(input < 0 || input > 23)
            return;
        hour = input;   //input 값을 hour에 입력
    }
    public void setMinute(int input) {      //input에 대한 minute 제약조건 검증
        if(input < 0 || input > 59)
            return;
        minute = input; //input 값을 minute에 입력
    }
    public void setSecond(float input) {    //input에 대한 second 제약조건 검증
        if(input < 0.0f || input > 59.99f)
            return;
        second = input; //input 값을 second에 입력
    }
}

public class Linked_test1 {
    public static void main(String[] args) {

        Time time1 = new Time();    //인스턴스 생성

        int hour = 12;
        int minute = 43;
        float second = 24.34f;

        time1.setHour(hour);
        time1.setMinute(minute);
        time1.setSecond(second);

        System.out.println("시간 : " + time1.getHour());
        System.out.println("분 : " + time1.getMinute());
        System.out.println("초 : " + time1.getSecond());

    }
}

테스트

입력				출력
hour = 12			시간 : 12
minute = 43			분 : 43
second = 24.34			초 : 24.34
입력				출력
hour = 24			시간 : 0
minute = 43			분 : 43
second = 24.34			초 : 24.34

총평

딱히 할 말이 없다.

댓글