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
총평
딱히 할 말이 없다.
'✏️Java 공부 > 기타 등등' 카테고리의 다른 글
[Java 공부/기타] 객체 정렬하기 (Comparable & Comparator) (0) | 2022.08.01 |
---|---|
[Java 공부/기타] Java 형 변환 정리 (0) | 2022.07.31 |
댓글