2017-10-18 4 views
-6

ゲッターとセッターを練習するためのコードを書いています。私は次のような状況に遭遇しました。引数に応じてgetterを返す方法は?

私は5つの製品を作成し、それらをプライベートとして宣言しました。メソッドが受け取る引数に基づいて、製品名を返すようにします。同様に、public String getProduct(String product) {}

私は Mochaを返します public String getProducts(p1);のように使用されてゲッター、と思った何
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; 

    } 

} 

を次のようにこれまでのところ、私が書いてきました。しかし、コードをコンパイルすると、cannot find symbol - symbol: variable productと表示されます。誰か助けてくれますか?

+6

ああ親愛なる:

List<Product> products = new Arraylist(); products.add(new Product(Type.Latte, 5)); 

ところで、あなたはオブジェクトとクラスの基本を取得するためにここに始めることができます。それはどのように動作するのではありません。別の変数のすべてを含む 'Products'クラスや、変数がどのように誤解されているので動作しないフランケンゲッターではなく、単一のアイテムの名前と価格を含む' Product'クラスが必要ですJavaで使用されます。 Go [いくつかのチュートリアル](https://docs.oracle.com/javase/tutorial/)を読んでください。 – Kayaman

+0

@カヤマンが言ったこと、そしてシンボルについて見つけられないことについて。 '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; 
    } 
} 

その後、あなたが好きそれを使用することができます:https://docs.oracle.com/javase/tutorial/java/javaOO/index.html

関連する問題