如何根据参数制作 getter return 东西?

How to make getter return something depending on the argument?

我正在编写代码来练习 getters 和 setter,我 运行 遇到以下情况:

我创建了 5 个产品并在 class 中将它们声明为私有。我希望我的 getter 到 return 基于方法接收的参数的产品名称。比如,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;

    } 

}

我认为 getter 的用法类似于 public String getProducts(p1);,这会 return Mocha。但是,当我编译代码时,它显示 cannot find symbol - symbol: variable product。有人可以帮助我吗?

首先,您还没有在主 class 中声明任何 '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);
        }
    }

用法:

Products p=new Products();
System.out.println(p.getProductName("p2"));

控制台:

Latte

创建一个带有实例字段的 class 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