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', 然后 构造函数。因此,在您当前的代码片段中,currency
以 null
开始,然后执行 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);
}
}
我想创建一个 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', 然后 构造函数。因此,在您当前的代码片段中,currency
以 null
开始,然后执行 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);
}
}