예제 5-35
2013-01-14
|
by stvking
1537
몇 일 전 질문을 했는데 친절하게 답변 주셔서 매우 감사합니다.
답글을 쓸 수 없어 여기서 감사인사 드림다.
이번 질문은 아래의 클래스에서 말입니다.
class LimitedValue {
final static int UPPER_LIMIT = 100000;
int value;
void setValue (int value) {
if (value < UPPER_LIMIT)
this.value = value;
else
value = UPPER_LIMIT; /* <-책에는 this.value지만 전 this.를 쓰지 않았습니다.*/
}
}
class StaticFieldExample2 {
public static void main(String args[]) {
LimitedValue v = new LimitedValue();
v.setValue(200000);
System.out.println("v.value = " + v.value);
System.out.println("상한값 = " + LimitedValue.UPPER_LIMIT);
}
}
두 클래스를 컴파일해서 실행시켜보았습니다.
v.value = 0
상한값 = 100000
어째서 v.vlaue = 0 인 거죠?
분명 LimitedValue 클래스를 컴파일할 때 error가 발생하지 않았는데.