号は、あなたがこのコードにこのコードがあるとします。
public class NameOfProgram
{
public static void main(String[] args)
{
A aa = new A();
aa.fly();
}
}
その後AA内部変数BBは声明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 void fly()
{
//Insert code here
}
はまた、あなたは間違ってコンストラクタを宣言しました。
public A
{
//Insert code here
}
、それは次のように行われます:ここではあなたがそれをやった方法です
public A()
{
//Insert code here
}
それはプライベートでももないので、あなたが呼び出しaa.fly()
を行う場合、最初のエラーはコンパイル時にエラーが発生しますパブリック。
メソッドを呼び出さなくても、2番目のエラーはコンパイル時に発生します。
Bのコードを表示する必要があります - doFly()メソッドを持っていますかAから継承していますか? –