我正在尝试在SiloManager
类中创建一个Silo类的两个对象,以便我可以访问这两个对象的方法。但我似乎无法使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());
}
}
正如我说我是一个初学者所以请轻松嘿嘿,谢谢你的帮助。
答案 0 :(得分:4)
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;
}
你可以看到几乎没有任何意义。您将覆盖您创建的对象,并将对象传递给构造函数。
答案 1 :(得分:0)
你的构造函数将取代“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();