號假設你有這樣的代碼驗證碼:
public class NameOfProgram
{
public static void main(String[] args)
{
A aa = new A();
aa.fly();
}
}
然後變量BB AA內使用語句new A()
創建。所以,你不必創建一個B對象,並將其設置爲bb,因爲它已經存在。另外,你需要在構造函數之外聲明該變量,否則你將無法在其他方法中使用它,例如fly。要糾正它,你可以這樣做:
public class A
{
B bb; <-----------------
public A()
{
bb = new B(NameOfVariableIForgotAbout);
}
public void fly()
{
bb.doFly() //Now this should work
}
}
你也可以,但該方法後B bb;
,我只是喜歡這種方式。
此外,你的A類有一些錯誤(所以你注意將來的參考)。首先,如果你希望能夠從類(A aa = new A(); aa.fly()
)的實例調用的方法,那麼你需要做的方法public像這樣:
public void fly()
{
//Insert code here
}
而且,你聲明的構造函數錯誤。這裏是你如何做到了:
public A
{
//Insert code here
}
,它是這樣完成的:
public A()
{
//Insert code here
}
的第一個錯誤會導致編譯時錯誤,如果你撥打電話aa.fly()
,因爲它既不是民營,也不上市。
即使沒有調用方法,第二個會導致編譯時錯誤。
你需要顯示B的代碼 - 它有一個方法doFly()嗎?還是它繼承自A? – 2010-11-28 12:11:53