我不知道如何将providerName值保存在类对象中。我正在尝试使用用户输入在addItem方法中对其进行更改,并将其存储在类对象中。没用我究竟做错了什么?我需要更改构造函数吗?还是使用吸气剂方法?
这是我的代码:
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");
。由于class变量是private,因此您还需要getter / setter。
例如:
二传手:
public void setSupplierName(String s){
this.supplierName = s;
}
吸气剂:
public String getSupplierName(){
return this.supplierName
}
然后进行操作,您需要执行以下操作:
item.setSupplierName("some company");
item.getsupplierName();
但是,在使用setter时,您应该注意线程安全。
关于java - 如何在对象中保存私有(private)字段(在方法中获得)的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48575056/