如何让getter根据参数返回一些东西?
问题描述:
我在写代码练getter和setter方法,我已经碰到以下情况:如何让getter根据参数返回一些东西?
我创建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
。有人能帮我吗?
答
首先,你还没有宣布在主类中的任何“产品”,所以当你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
答
与实例字段创建一个类Product
然后用列表例如 像:
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
哦,亲爱的。这根本不是它的工作原理。你应该有一个包含一个包含独立的变量,因为你误解了变量是如何不起作用一个弗兰肯的getter一切的名称和价格为单个项目,而不是一个'Products'类'Product'类用于Java。阅读[一些教程](https://docs.oracle.com/javase/tutorial/)。 – Kayaman
@Kayaman说了些什么,还有关于无法找到符号的问题; 'product'没有在任何地方声明。 –
谢谢你们。会做。 –