我不知道如何将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/

10-13 03:04