🔑알고리즘/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;
	}
}
반응형