답변 달려고 했더니 좋은 답변이 먼저 등록되어서 스킵...
질문)
Public SimpleAdder add(int num)
{
This.num+=num;
Return this;
}
반환형이 심플애더라는 클래스명인데 인트형을 반환할때랑 무엇이 다르고 어느 때 쓰면 좋은가요?
먼저 달린 답변)
위 메소드만 보면, SimpleAdder 클래스는 대충 아래와 같은 코드로 구성되어 있겠군요.
public class SimpleAdder {
int num = 0; public SimpleAdder add(int num) {
this.num += num;
return this;
}
@Override
public String toString() {
return "num = " + num;
}
public static void main(String[] args) {
SimpleAdder sa = new SimpleAdder();
System.out.println(sa);
sa.add(10);
System.out.println(sa);
sa.add(100);
System.out.println(sa);
}
}
내 답변)
아래의 실행결과를 보고 해당 메소드가 가지는 성격을 확인해 보세요.
1. CLASS
public class test_0315_000 {
public static void main(String[] args) {
int a = 100;
SimpleAdder sa = new SimpleAdder();
System.out.println("3. test_0315_000 클래스의 main 으로 반환된 값 : " + sa.add(a));
}
}
class SimpleAdder{
private String num = "";
// 반환형이 SimpleAdder 인 메소드 타입의 반환형 이기 때문에..
// 기본자료형이 아닌 SimpleAdder 메소드 자체를넘김.
public SimpleAdder add(int num){
System.out.println("1. SimpleAdder 클래스의 add 메소드의 num : " + num);
this.num+= num;
return this;
}
// SimpleAdder 를 toString 메소드에 의해 String 형으로 반환.
public String toString() {
System.out.println("2. SimpleAdder 클래스의 toString 메소드의 num : " + num);
return num;
}
}
2. RUN
1. SimpleAdder 클래스의 add 메소드의 num : 100
2. SimpleAdder 클래스의 toString 메소드의 num : 100
3. test_0315_000 클래스의 main 으로 반환된 값 : 100
'course > 지식인' 카테고리의 다른 글
[자바] 2차원 배열을 메소드간 전달 시 문제 2가지. (0) | 2016.03.22 |
---|---|
[자바스크립트] 오늘을 기준으로 한달전 날짜 구하기. (0) | 2016.03.14 |
[자바] RequestDispatcher 에 대한 설명.. (4) | 2016.03.10 |