有人可以告訴我,如何在課堂級別調用方法?我們可以在課堂上而不是在方法中調用一種方法嗎?
假設我有一個像下面這樣的類,那麼我們可以在類級別調用test1Method嗎?如果不正確,請告訴我的原因..
class Test2 {
Test1 t1=new Test1();
t1.test1Method();
public void test2Method() { }
}
有人可以告訴我,如何在課堂級別調用方法?我們可以在課堂上而不是在方法中調用一種方法嗎?
假設我有一個像下面這樣的類,那麼我們可以在類級別調用test1Method嗎?如果不正確,請告訴我的原因..
class Test2 {
Test1 t1=new Test1();
t1.test1Method();
public void test2Method() { }
}
不,您不能在方法調用語句或任何其他語句直接在類下。如在JLS Section 8 - Classes指定:
一類的主體聲明成員(字段和方法和嵌套類和接口),實例和靜態初始化,並構造(§8.1.6)。
您必須在這些成員(某些方法),初始值設定項或構造函數中移動方法調用。
@SotiriosDelimanolis什麼? –
@SotiriosDelimanolis。我的意思是按照JLS部分的規定,將成員,初始化程序和構造程序集體指向。 –
您可以將instance block
class Test2 {
{
Test1 t1=new Test1();
t1.test1Method();
}
}
的實例中稱他們爲或初始化塊都會被調用時的對象類型Test2
被構建。 JVM可以確保實例塊內容在構造函數中被複制,像下面
class Test2 {
public Test2() {
{
Test1 t1=new Test1();
t1.test1Method();
}
}
}
OR static initialization block
class Test2 {
static {
Test1 t1=new Test1();
t1.test1Method();
}
}
的靜態塊當第一次類Test2
被載入執行。
如果您控制了test1Method方法的返回類型,那麼您可以使用該方法返回Test1對象並像下面一樣編寫代碼。
class Test2 {
Test1 t1=new Test1().test1Method();
public void test2Method() { }
}
你是什麼意思「在班級」? 「類」方法是靜態的,可以在類本身或實例上調用(包括'null')。原因?因爲這就是Java。 –
@Bobby:好的..我會在下一篇文章中關注這個。謝謝。 –