메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 java 프로그래밍

뇌를 자극하는 java 프로그래밍 질의응답 게시판입니다.

예제 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가 발생하지 않았는데.
댓글 입력