我想不出在类对象中保存 supplierName 值的方法。我正在尝试使用用户输入在 addItem 方法中更改它,并将其存储在类对象中。它不起作用。我究竟做错了什么?我需要更改我的构造函数吗?还是使用 getter 方法?
这是我的代码:
import java.util.Scanner;
public class PurchasedItem extends Item {
private String suppplierName;
public PurchasedItem() {}
@Override
public boolean addItem(Scanner input) {
super.addItem(input);
System.out.print("Enter the name of the supplier: ");
suppplierName = input.next();
return true;
}
@Override
public String toString() {
String str = super.toString();
return str + " Supplier: " + suppplierName;
}
}
最佳答案
一个解决方案是允许构造函数接受一个参数,例如:
public PurchasedItem(String constructorArgument){
supplierName = constructorArgument;
}
然后,您可以执行如下操作:PurchasedItem item = new PurchasedItem("some supplier");
。
由于类变量是私有(private)的,因此您还需要 getters/setters。
例如:
二传手:
public void setSupplierName(String s){
this.supplierName = s;
}
setter/getter :
public String getSupplierName(){
return this.supplierName
}
然后要进行操作,您需要执行以下操作:
item.setSupplierName("some company");
item.getsupplierName();
不过,在使用 setter 时,您应该注意线程安全。
关于java - 如何在对象中保存私有(private)字段(在方法中获得)的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48575056/