我正在编写代码来练习getter和setter,我遇到了以下情况:
我创建了5个产品,并在一个类中将它们声明为私有。我希望我的getter根据方法接收的参数返回产品的名称。就像,public String getProduct(String product) {}
。到目前为止,我写的如下:
class Products {
private String p1 = "Mocha", p2 = "Latte", p3 = "Cappuccino", p4 = "Frappuccino", p5 = "Cafe au Lait";
private int priceP1 = 8, priceP2 = 5, priceP3 = 10, priceP4 = 13, priceP5 = 3;
public String getProduct(String product) {
return this.product;
}
}
我认为像public String getProducts(p1);
这样使用的getter会返回Mocha
。但是,当我编译代码时,它会显示cannot find symbol - symbol: variable product
。有人能帮助我吗?
答案 0 :(得分:0)
使用实例字段创建一个类Product
,然后使用List,例如
像:
public class Product {
private Type type;
private int price;
public Product(Type type, int price) {
this.type = type;
this.price = price;
}
public Type getType() {
return type;
}
public int getPrice() {
return price;
}
public enum Type {
Mocca, Latte, Cappuccino;
}
}
然后你就可以使用它:
List<Product> products = new Arraylist();
products.add(new Product(Type.Latte, 5));
顺便说一下,你可以从这里开始获取对象和类的基础知识:https://docs.oracle.com/javase/tutorial/java/javaOO/index.html
答案 1 :(得分:-1)
首先,你没有在主类中声明任何“产品”,所以当你return this.product;
时,你会得到你说的错误。
正如Kayaman所说,你应该学习一些关于Java变量的教程。
但是,你可以尝试这个简单的简单教程:
public static class Products {
HashMap<String, String> productList = new HashMap<String, String>();
public Products() {
productList.put("p1", "Mocha");
productList.put("p2","Latte");
}
public String getProductName(String productID){
return productList.get(productID);
}
}
Ussage:
Products p=new Products();
System.out.println(p.getProductName("p2"));
控制台:
Latte