【问题标题】:Java, setter method for array. Two classesJava,数组的setter方法。两班
【发布时间】:2016-05-17 22:51:50
【问题描述】:

我需要创建一个 SETTER method within Class B 来为存储在定义的数组中的特定 Product 对象设置新价格A类。 任何人都可以帮助这个基本的java代码吗? 假设我们创建了苹果产品,我们需要更改它的价格。 我需要使用类似的东西:

setPrice (product name, price);

这里是场景:

Class A

public class Store(){

Store(Product aProduct){
products = new ArrayList< Product> ();
}
}

Class B

private String name;
private int price;

public class Product {
Product ( String aName, int aPrice) {

name = aName;
price = aPrice;
}
}

非常感谢。

【问题讨论】:

  • 许多可能性。有什么特殊要求吗?
  • 另外,为什么商店会采用不使用的产品aProduct?类 BProduct 吗?

标签: java arrays methods setter


【解决方案1】:
public class Store(){

    List<Product> products;

    Store(){
        products = new ArrayList<Product>();
    }

    public addProduct(product){
        products.add(product)
    }

    public boolean setPrice(String productName,int price){
        for(Product product: products){
            if(product.name.equalsIgnoreCase(productName) ){
                product.price = price;
                return true;
            }
        }
        return false;
    }
}


public class Product {

    private String name;
    private int price;
    Product (String aName, int aPrice) {
        this.name = aName;
        this.price = aPrice;
    }


}

希望对你有帮助

【讨论】:

  • 我建议使用 .equalsIgnoreCase(...) 而不是 == 来比较产品名称 - 此外,setters 不需要返回任何内容,除非指定/要求
  • need not return anything 并不意味着把它拿出来。您必须在代码中添加void 字以避免混淆。
  • 如果产品名称不存在怎么办?
【解决方案2】:

要成为一个可行的解决方案,还需要实现更多。以下是您需要做的一些事情:

A类:

  • 声明产品变量
  • 创建查找产品的方法(foreach 循环,将产品名称与方法参数进行比较,使用产品 Getter 作为名称,返回产品对象)
  • 创建设置价格、价格参数和名称的方法。使用 B 类的 setter 方法
  • 从构造函数参数中移除 Product 对象
  • 添加产品到ArrayList的方法(新建Product对象,添加到ArrayList)

B类:

  • 为价格添加 Setter 方法(见下文)
  • 为名称添加 Setter 方法
  • 为价格添加 Getter 方法
  • 为名称添加 getter 方法(见下文)

二传手:

public void setPrice(int _price){
    this.price = _price;
}

吸气剂:

public String getName(){
    return this.name;
}

另外要考虑的一件事是,您的价格是否不想成为双倍类型的价格? int 不允许有小数位。

【讨论】:

    猜你喜欢
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2013-07-09
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多