2017-10-18 120 views
-6

我在寫代碼練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。有人能幫我嗎?

+6

哦,親愛的。這根本不是它的工作原理。你應該有一個包含一個包含獨立的變量,因爲你誤解了變量是如何不起作用一個弗蘭肯的getter一切的名稱和價格爲單個項目,而不是一個'Products'類'Product'類用於Java。閱讀[一些教程](https://docs.oracle.com/javase/tutorial/)。 – Kayaman

+0

@Kayaman說了些什麼,還有關於無法找到符號的問題; 'product'沒有在任何地方聲明。 –

+0

謝謝你們。會做。 –

回答

-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 
0

與實例字段創建一個類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

相關問題