首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中创建一个类中另一个类的两个对象

在Java中创建一个类中另一个类的两个对象
EN

Stack Overflow用户
提问于 2013-11-12 05:08:20
回答 2查看 387关注 0票数 2

我正在尝试在一个SiloManager类中创建一个竖井类的两个对象,这样我就可以访问这两个对象的方法。但是我似乎不能让SiloManager构造函数工作,也不能正确地实例化这些类。(我是java的初学者)。下面是我的代码:

代码语言:javascript
复制
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());
    }

}

正如我所说的,我是一个初学者,所以放轻松,谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2013-11-12 05:12:16

代码语言:javascript
复制
public GrainSilo silo1 = new GrainSilo(100);
public GrainSilo silo2 = new GrainSilo(50);


public GrainSiloManager(GrainSilo silo1, GrainSilo silo2) {
    this.silo1 = silo1;
    this.silo2 = silo2;
}

这将被编译为:

代码语言:javascript
复制
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;
}

正如你所看到的,这几乎没有任何意义。您正在使用传递到构造函数的对象覆盖您创建的对象。

票数 4
EN

Stack Overflow用户

发布于 2013-11-12 05:13:35

您的构造函数将替换"public!“silo1和silo2对象,以及传入的内容。你可以像这样改变你的构造函数

代码语言:javascript
复制
 public GrainSiloManager() {
    super();
 }

或者更短的(但等效的)

代码语言:javascript
复制
 public GrainSiloManager() {
 }

然后这样叫它

代码语言:javascript
复制
 new GrainSiloManager().showStatus();

或者,您可以使用现有的方法(它将替换构造函数中的GrainSoloManager.silo1和GrainSoloManager.silo2 )。

代码语言:javascript
复制
 GrainSilo silo1 = new GrainSilo(100);
 GrainSilo silo2 = new GrainSilo(50);
 new GrainSiloManager(silo1, silo2).showStatus();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19915980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档