我正在尝试在一个SiloManager类中创建一个竖井类的两个对象,这样我就可以访问这两个对象的方法。但是我似乎不能让SiloManager构造函数工作,也不能正确地实例化这些类。(我是java的初学者)。下面是我的代码:
public class GrainSiloManager {
public GrainSilo silo1 = new GrainSilo(100);
public GrainSilo silo2 = new GrainSilo(50);
public GrainSiloManager(GrainSilo silo1, GrainSilo silo2) {
this.silo1 = silo1;
this.silo2 = silo2;
}
private void showStatus() {
System.out.println("The current grain in silo1 is: " + silo1.getGrain());
System.out.println("The current grain in silo2 is: " + silo2.getGrain());
}
}正如我所说的,我是一个初学者,所以放轻松,谢谢你的帮助。
发布于 2013-11-12 05:12:16
public GrainSilo silo1 = new GrainSilo(100);
public GrainSilo silo2 = new GrainSilo(50);
public GrainSiloManager(GrainSilo silo1, GrainSilo silo2) {
this.silo1 = silo1;
this.silo2 = silo2;
}这将被编译为:
public GrainSilo silo1;
public GrainSilo silo2;
public GrainSiloManager(GrainSilo silo1, GrainSilo silo2) {
this.silo1 = new GrainSilo(100);
this.silo2 = new GrainSilo(50);
this.silo1 = silo1;
this.silo2 = silo2;
}正如你所看到的,这几乎没有任何意义。您正在使用传递到构造函数的对象覆盖您创建的对象。
发布于 2013-11-12 05:13:35
您的构造函数将替换"public!“silo1和silo2对象,以及传入的内容。你可以像这样改变你的构造函数
public GrainSiloManager() {
super();
}或者更短的(但等效的)
public GrainSiloManager() {
}然后这样叫它
new GrainSiloManager().showStatus();或者,您可以使用现有的方法(它将替换构造函数中的GrainSoloManager.silo1和GrainSoloManager.silo2 )。
GrainSilo silo1 = new GrainSilo(100);
GrainSilo silo2 = new GrainSilo(50);
new GrainSiloManager(silo1, silo2).showStatus();https://stackoverflow.com/questions/19915980
复制相似问题