SCJP(OCPJP) 考古題解析 第21題

Given:

class Batman {
    int squares = 81;
    public static void main(String[] args) {
        new Batman().go();
    }
    void go() {
        incr(++squares);
        System.out.println(squares);
    }
    void incr(int squares) {
        squares += 10;
    }
}

What is the result?

A. 81
B. 82
C. 91
D. 92
E. Compilation fails.
F. An exception is thrown at runtime.


答案:



解析:

go()方法印出的squares是Batman的squares

incr()所變更的squares是本身的方法變數



若是要讓squares變成92

void incr(int squares) { squares += 10; }

就要改成

void incr(int squares) {  this.squares += 10; } 




0 意見:

張貼留言