public static void main(String[] args){
ReturnTest r = new ReturnTest();
int result = r.add(3,5);
System.out.println(result);
int[] result2 = {0};
r.add(3,5,result2);
System.out.println(result2[0]);
}
int add(int a, int b){
return a+b;
}
void add(int a, int b, int[] result){
result[0] = a + b;
}
}
위의 예제의 결과는
8
8
이다.
위의 예제에서 맨 아래의 메서드는 리턴값이 없지만 리턴되는 효과를 얻었다.
찹조형 매개변수(여기서는 배열)를 이용하여 값을 설정하였기에 void에서도 리턴되는 효과를 얻을 수 있는 것이다.
이것을 응용한다면 하나의 메서드에서 여러 개의 값을 리턴되는 효과를 얻을 수 있다.
class ReturnTest2{
public static void main(String[] args){
ReturnTest r = new ReturnTest();
int[] result1 = {0};
int[] result2 = {0};
int[] result3 = {0};
r.add(result1,result2,result3);
System.out.println(result1[0]);
System.out.println(result2[0]);
System.out.println(result3[0]);
}
void add(int[] a, int[] b, int[] c){
a[0] = 1 + 2;
b[0] = 3 + 4;
c[0] = 5 + 6;
}
}
결과
3
7
11
참고 : 자바의 정석
'자바' 카테고리의 다른 글
초기화 블럭 - 변수 선언의 또 다른 방법 (0) | 2014.01.15 |
---|---|
생성자를 이용한 인스턴스의 복사 (0) | 2014.01.15 |
자바 class의 구성 (0) | 2014.01.07 |
자바의 THIS (0) | 2014.01.07 |
자바에서 session 정보 가져오기 (0) | 2013.10.04 |