classMethod5_1 {intadd(int x,int y) {int result = x + y;return result; // 값을 반환 }}classMethod5_1Main {publicstaticvoidmain(String[] args) {Method5_1 method =newMethod5_1(); // Method5_1 클래스에 만든 메서드 add 를 사용하기 위해 객체 생성int result =method.add(3,5); // add 메서드를 사용해서 입력한 값(3,5)으로 처리된 값을 반환받아 result 변수에 저장System.out.println("result = "+ result); }}
return
실행 중인 메서드를 종료하고 호출한 곳으로 되돌아갑니다.
반환타입이 void가 아닌 경우, 반드시 return 문이 필요합니다.
void 는 컴파일러가 자동으로 메서드 마지막에 return; 을 추가해 줍니다.
아래 예제코드로 학습해 보겠습니다.
classMethod5_2 {voidgugudan(int dan) {if (!(dan >=2&& dan <=9)) {System.out.println(dan +"단은 없습니다.");return; }System.out.println(dan +"단 시작!");for (int i =1; i <10; i++) {System.out.println(dan +"*"+ i +" = "+ dan * i); }System.out.println(); }booleancheckMax(int x,int y) {if (x > y) {returntrue; } else {returnfalse;// return 반드시 필요합니다. 만약 없으면 조건문이 false 일 경우, void 가 아닌데 return 문이 없음으로 Error } }}classMethod5_2Main {publicstaticvoidmain(String[] args) {Method5_2 method =newMethod5_2();method.gugudan(2);method.gugudan(5);method.gugudan(10);method.gugudan(9);System.out.println("method.checkMax(10, 8) = "+method.checkMax(10,8));System.out.println("method.checkMax(5, 9) = "+method.checkMax(5,9)); }}
문장들의 묶음
코드의 중복을 하나의 묶음으로 만들어 코드의 가독성 및 효율을 높여줍니다.
아래 예제코드로 학습해 보겠습니다.
classTime5_1 {int hour;int minute;int second;}classMethod5_3 {staticvoidinitObj(Time5_1 time,int hour,int minute,int second) {time.hour= hour;time.minute= minute;time.second= second; }}classMethod5_3Main {publicstaticvoidmain(String[] args) {Time5_1 t1 =newTime5_1();t1.hour=100;t1.minute=20;t1.second=43;Time5_1 t2 =newTime5_1();t2.hour=22;t2.minute=30;t2.second=23;Time5_1 t3 =newTime5_1();t3.hour=45;t3.minute=40;t3.second=52;System.out.println("t1.hour = "+t1.hour);System.out.println("t2.hour = "+t2.hour);System.out.println("t3.hour = "+t3.hour);System.out.println();// 하나하나 인스턴스를 만들고 위처럼 인스턴스 변수를 초기화 하려니 매우 귀찮지 않나요?// 물론 '생성자' 라는 개념이 뒤에 나오지만 일단은 메서드를 사용하여 코드의 수를 확 줄여 보겠습니다.Time5_1 t4 =newTime5_1();Time5_1 t5 =newTime5_1();Time5_1 t6 =newTime5_1();Method5_3.initObj(t4,100,20,43);Method5_3.initObj(t5,22,30,23);Method5_3.initObj(t6,45,40,52);System.out.println("t4.hour = "+t4.hour);System.out.println("t5.hour = "+t5.hour);System.out.println("t6.hour = "+t6.hour);// 이처럼 메서드를 사용하니 코드의 수가 굉장히 많이 줄어 가독성이 좋아졌습니다. }}