🔑알고리즘/programming language
Java 객체 지향 프로그래밍 void if return의 사용
pkyung
2021. 9. 11. 22:56
반응형
자바의 정석 3판 chapter 07의 접근제어자 부분의 코드이다.
public class TimeTest {
public static void main(String[] args) {
Time t = new Time(12, 35, 30);
System.out.println(t);
t.setHour(t.getHour() + 1);
System.out.println(t);
}
}
class Time {
private int hour, minute, second;
Time(int hour, int minute, int second) {
setHour(hour);
setMinute(minute);
setSecond(second);
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
if (hour < 0 || hour > 23) return;
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if (minute < 0 || minute > 59) return;
this.minute = minute;
}
public int getsecond() {
return second;
}
public void setSecond(int second) {
if (second < 0 || second > 59) return;
this.second = second;
}
public String toString() {
return hour + ":" + minute + ":" + second;
}
}
getHour 은 단순히 변수 hour을 반환하는 메소드이고
setHour은 변수 hour을 지정해주는 메소드이다
void는 반환값이 없는 메소드인데 return은 무엇일까 에 대해서 고민해보았다.
hour의 범위가 0보다 작고 23보다 크면 반환한다 ( = break 한다는 의미이다.)
for문에서 break건 것처럼 생각하면 쉽다.
return을 쓰지 않으려면
이렇게 코드를 바꾸면 된다.
public class TimeTest {
public static void main(String[] args) {
Time t = new Time(12, 35, 30);
System.out.println(t);
t.setHour(t.getHour() + 1);
System.out.println(t);
}
}
class Time {
private int hour, minute, second;
Time(int hour, int minute, int second) {
setHour(hour);
setMinute(minute);
setSecond(second);
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
if (hour >= 0 || hour <= 23)
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if (minute >= 0 || minute <= 59)
this.minute = minute;
}
public int getsecond() {
return second;
}
public void setSecond(int second) {
if (second >= 0 || second <= 59)
this.second = second;
}
public String toString() {
return hour + ":" + minute + ":" + second;
}
}
반응형