Java 객체 지향 프로그래밍 void if return의 사용

Java 객체 지향 프로그래밍 void if return의 사용

자바의 정석 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; } }

from http://p-kyung.tistory.com/20 by ccl(A) rewrite - 2021-09-11 23:01:04