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

Given:

public class Hello {
    String title;
    int value;
    public Hello() {
        title += " World";
    }
    public Hello(int value) {
        this.value = value;
        title = "Hello";
        Hello();
    }
}

And:

Hello c = new Hello(5);
System.out.print(c.title);

What is the result?

A. Hello
B. Hello World
C. Compilation fails.
D. Hello World 5
E. The code runs with no output.
F. An exception is thrown at runtime.


答案:


解析:

因Hello()是建構子不是方法

line 19 的 Hello() 是方法的呼叫方法

但 class Hello{} 根本就無此方法

當然在編譯時就錯了





如果是要調用無參數的建構子 Hello() 的話

應該是要用 this(); 才對

但使用 this()的話,就要擺在 Hello(int value) 建構子的第一行才行



0 意見:

張貼留言