我需要在class B中创建一个SETTER方法,为存储在class a中定义的数组中的特定Product对象设置新价格。有人能帮我完成这个基本的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;
}
}
非常感谢。
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;
}
}
希望这能帮助
要使其成为一个有效的解决方案,还需要实现更多的功能。以下是您需要做的一些事情:
A类:
- 声明产品变量
- 创建用于查找产品的方法(foreach循环,将产品名称与方法参数进行比较,使用product Getter作为名称,返回product对象)
- 创建一个用于设置价格、价格参数和名称的方法。使用来自类B的setter方法
- 从构造函数参数中删除Product对象
- Add将产品添加到ArrayList的方法(创建新的product对象,添加到ArrayNist)
B类:
- 添加价格的Setter方法(见下文)
- 为名称添加Setter方法
- 为价格添加Getter方法
- 为名称添加getter方法(见下文)
设置程序:
public void setPrice(int _price){
this.price = _price;
}
Getter:
public String getName(){
return this.name;
}
此外,还有一件事需要考虑,你的价格不想是双倍的吗?int不允许使用小数点。