SCJP 1.6版考題 150

出自 陳富國維基館
前往: 導覽搜尋
Given:
5. import java.io.*;
6. public class Talk{
7.   public static void main(String[] args){
8.     Console c = new Console();
9.     String pw;
10.   System.out.print("password: ");
11.   pw = c.readLine();
12.   System.out.println("got" + pw);
13. }
14.}

If the user types the password aiko when prompted, what is the result?
A. password:
   got
B. password:
   got aiko
C. password: aiko
   got aiko
D. An exception is thrown at runtime.
E. Compilation fails due to an error on line 8.

解答


Ans: E

解說:

系統的Console只有一個,java.io.Console是一個Singleton樣板,不能讓使用者用new的方式來建立多個的Console…
要操作系統的Console要用System.console()取得目前系統的Console
第8行 錯誤的原因是Console的建構子是設為私有的(Singleton的特徵),不能被外界類別叫用,
     也就是禁止外界叫用Console建構子來建立Console 物件。要改為:
      Console c = System.console();