Java 如果我需要从构造函数传递一个变量,我该如何声明另一个实例变量 class

Java how do i declare a instance variable of another class if i need to pass a variable from the constructor

我想创建一个 class 的实例,它需要货币来支付 构造函数,但是我将货币传递到我正在创建它们的 class 的构造函数中。

public class Owner_Class {
    
    
    

    Controller items = new Controller();
    private Item[][] list = items.getItemList();
    private String currency;
    private coinCollector dispenser = new coinCollector(currency);
    public Owner_Class(String currency) {
        this.currency = currency;

    }

每当我 运行 这个货币就是空的。无论如何都可以这样做还是我需要改变它的工作方式

只需.. 将初始化转移到构造函数。 Java 首先运行所有 'initializing expressions', 然后 构造函数。因此,在您当前的代码片段中,currencynull 开始,然后执行 new coinCollector(currency)(因此,传递 null),然后您的构造函数运行并设置 currency - 太晚了。

因此:

public class Owner_Class {
    Controller items = new Controller();
    private Item[][] list = items.getItemList();
    private Scanner input = new Scanner(System.in);
    private String currency;
    private coinCollector dispenser;

    public Owner_Class(String currency) {
        this.currency = currency;
        this.dispenser = new coinCollector(currency);
    }
}