Given:



class Caller {

    private void init() {
        System.out.println("Initialized");
    }

    public void start() {
        init();
        System.out.println("Started");
    }
}

public class TestCall {

    public static void main(String[] args) {
        Caller c = new Caller();
        c.start();
        c.init();
    }
}

What is the result?

A.

Initialized
Started

B.

Initialized
Started
Initialized

C. Compilation fails
D. An exception is thrown at runtime

題解

程式第18行使用了Caller物件的init方法。由於init方法被private修飾字修飾,它的可見度只有在Caller這個類別之內,所以TestCall類別無法去呼叫到Caller物件的init方法,會在編譯時出現錯誤。