2016-05-17 15 views
2

は、誰もがこの基本的なJavaコードを助けることはできますか? Product appleを作成し、その価格を変更する必要があるとします。私のようなものを使用する必要があり :ここ配列のJava、setterメソッド。私はクラスA で定義された配列に格納された特定の製品のオブジェクトのための新しい価格を設定する</strong>クラスB内<strong>SETTER</strong><strong>方法</strong><strong>を作成する必要がある2つのクラス

setPrice (product name, price); 

は、シナリオは次のとおりです。非常に多くの

Class A 

public class Store(){ 

Store(Product aProduct){ 
products = new ArrayList< Product>(); 
} 
} 

Class B 

private String name; 
private int price; 

public class Product { 
Product (String aName, int aPrice) { 

name = aName; 
price = aPrice; 
} 
} 

感謝。これは実用的なソリューションであることを、このために実装する必要があるより多くの

+0

多くの可能性があります。特別な要件はありますか? – UDKOX

+1

また、Storeは使用しない製品 'aProduct'をStoreに持ち込むのはなぜですか?クラス 'B'は' Product'ですか? – UDKOX

答えて

1
public class Store(){ 

    List<Product> products; 

    Store(){ 
     products = new ArrayList<Product>(); 
    } 

    public addProduct(product){ 
     products.add(product) 
    } 

    public boolean setPrice(String productName,int price){ 
     for(Product product: products){ 
      if(product.name.equalsIgnoreCase(productName)){ 
       product.price = price; 
       return true; 
      } 
     } 
     return false; 
    } 
} 


public class Product { 

    private String name; 
    private int price; 
    Product (String aName, int aPrice) { 
     this.name = aName; 
     this.price = aPrice; 
    } 


} 

希望。

クラスA:ここではあなたが行う必要がありますいくつかのものです

  • 製品を見つけるためのメソッドを作成します

    • 宣言製品変数が(foreachループ、メソッドのパラメータに製品名を比較し、 Getter for name、返品Productオブジェクト)
    • 価格、価格と名前のパラメータを設定する方法を作成します。

    (ArrayListに追加し、新しいProductオブジェクトを作成します)ArrayListに製品を追加するためのメソッドを追加し、コンストラクタから削除Productオブジェクトが
  • パラメータ
  • クラスBからsetterメソッドを使用してクラスB:

    • 名前
    • のsetterメソッドを追加します
    • (下記参照)の価格のためのセッターメソッドを追加は、価格のgetterメソッドを追加します
    • (下記参照)の名前のために

    セッターゲッターメソッドを追加します。ゲッター

    public void setPrice(int _price){ 
        this.price = _price; 
    } 
    

    を:ほかに考慮すべき

    public String getName(){ 
        return this.name; 
    } 
    

    一つのこと、あなたの価格はなりたくないでしょうダブルタイプですか? intは小数点以下の桁数を許可しません。

  • +1

    私は、製品名の比較に '=='の代わりに '.equalsIgnoreCase(...)'を使うことをお勧めします - また、 'setters'は指定しないと何も返す必要はありません – ochi

    +0

    ありがとう – JohnTheBeloved

    +0

    '何も返す必要はない'それを取り除くことを意味するものではありません。混乱を避けるためにコードに 'void'を追加する必要があります。 – UDKOX

    1

    があるのに役立ちます

    関連する問題