2017-10-12 40 views
0

我剛開始學習Java和我被困在這個MCQ:可以使用點符號來定義void方法嗎?

假設類溫度定義爲belowand是 成功執行statment Temp a= new temp()聲明這是非法的在Java中?

class Temp { 
public static int i; 
public void method1() { } 
public static void method2() { } 
} 

A. System.out.println(i);

B. Temp.method1();

C. a.method1();

D. Temp.method2();

答案是B,但我不明白爲什麼。是否因爲void方法不能使用點符號定義,除非它是靜態的?

+0

'method1'不是靜態的,換句話說你必須在調用這個方法之前創建一個'Temp'類實例。 – 2017-10-12 11:58:23

+1

它與'void'的返回類型無關。你根本不能調用*實例*方法*靜態*。 – David

+0

你確定B是唯一一個非法的嗎?那麼A呢? – Henry

回答

0

因爲method1是非靜態方法。只有類名是靜態的,纔可以使用類名。查看here瞭解更多詳情。

相關問題