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

한빛미디어

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

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

예제 5-35(2)

2013-01-14

|

by stvking

1690

class LimitedValue {
        final static int UPPER_LIMIT = 100000;
        int value;
        void setValue (int value) {
                if (value < UPPER_LIMIT)
                        this.value = value;
                else
                        this.value = UPPER_LIMIT;
        }
}

위의 클래스가 책에 적혀있는 클래스입니다.

하지만 메소드 setValue의 파라미터 int vaule를 int c로 바꿔보았습니다..

class LimitedValue {
        final static int UPPER_LIMIT = 100000;
        int value;
        void setValue (int c) {
                if (value < UPPER_LIMIT)
                        this.value = c;
                else
                        this.value = UPPER_LIMIT;
        }
}

컴파일했는데 error가 뜨지 않더군요.
그런다음 아래 클래스를 컴파일하여 실행하였습니다.

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 = 200000             // <- 이런결과가 나왔습니다.
상한값 = 100000

if절에서 참이란 판단이 나와서 그런 것 같은데, 어째서 참이라 판단된거죠?
댓글 입력