号假设你有这样的代码验证码:
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