2017-12-26 5 views
0

この3つのクラスを使用するJavaプログラムを作成するタスクが与えられました。メインクラス、メニュークラス、コーヒークラス。今私はメニュークラスからコーヒークラスに価値を渡す必要があります。しかし、問題は私はちょうどJavaで新しいので、私はそれを行う方法を正確に知っていないです。Javaで値を渡す

CoffType値をC​​offeeNameに渡します。 NumBagはNumberOfBagに値を渡します。

これは、メニュークラス(プログラマ定義されたクラス1)

import java.util.*; 
public class Menu { 
    Scanner scan = new Scanner(System.in); 
    public String coffType; 
    public int numBag; 

    public void setCoffType() { 
     System.out.println("\t\tChoose Your Coffee"); 
     System.out.println("\n[1] Arabica\tRM12.50 per bag"); 
     System.out.println("\n[2] Robusta\tRM15.00 per bag"); 
     coffType = scan.nextLine(); 

    } 

    public void setNumBag() { 
     System.out.println("Enter amount you wish to buy"); 
     numBag = scan.nextInt(); 
    } 

} 

コーヒークラス(プログラマ定義されたクラス2)

public class Coffee{ 
    private String coffeeName; 
    private double coffeePrice; 
    private double amountPay; 
    private int numberOfBag; 
    private double discount; 

    public Coffee() { // constructor 
     coffeeName = "unknown"; 
     coffeePrice = 0.00; 
     amountPay = 0.00; 
     numberOfBag = 0; 
     discount = 0.00; 
    } 



    public double getCoffeePrice() { 
     if(coffeeName.equalsIgnoreCase("arabica")) { 
     coffeePrice = 12.50 * numberOfBag; 
     } 
     else if(coffeeName.equalsIgnoreCase("robusta")) { 
      coffeePrice = 15.00 * numberOfBag; 
     } 
     System.out.println("Price RM: " +coffeePrice); 
     return coffeePrice; 
    } 

    public double getDiscount() { 
     if(numberOfBag>0 && numberOfBag<=50) { 
      discount = coffeePrice*0; 
     } 
     if(numberOfBag>50 && numberOfBag<=100) { 
      discount = coffeePrice*0.10; 
     } 
     if(numberOfBag>100 && numberOfBag<=150) { 
      discount = coffeePrice*0.15; 
     } 
     if(numberOfBag>150 && numberOfBag<=200) { 
      discount = coffeePrice*0.20; 
     } 
     if(numberOfBag>200) { 
      discount = coffeePrice*0.25; 
     } 
     System.out.println("Discount RM: " +discount); 
     return discount; 
    } 

    public double getAmountPay() { 
     amountPay = coffeePrice - discount; 
     System.out.println("\nTotal Need To Pay RM: " +amountPay); 
     return amountPay; 
    } 


} 

である私はnumberOfBagcoffeeNamenumbagcoffTypeを渡したいです。どのようにこれらの値を変更できますか?

Coffe coffeOne = new Coffe(coffeName, amoutPay, numBag); 

で:

public Coffee(String coffeeName, double amountPay, int numberOfBag) { 
     this.coffeeName = coffeeName; 
     this.amountPay = amountPay; 
     this.numberOfBag = numberOfBag; 
    } 

MenuClassでは、ユーザーによって選択された値を持つオブジェクトのコーヒーをインスタンス化します:あなたが設定したいパラメータを受け取るコンストラクタを作成CoffeClassで

+2

慣習に従い、属性名/変数の名前を小文字で始めるようにしてください; – azro

+0

コンストラクタ、ゲッター、セッターを読み上げてください。 – user3437460

+0

OOPのコンセプトを理解していますか?あなたはオブジェクトとインスタンスの概念を理解していますか? –

答えて

1

を "規則に従うと、小文字でattributs /変数の命名起動してください" CoffTypeをCoffeeNameに、NumBagをNumberOfBagに設定すると、パラメータ化されたコンストラクタまたはセッタを使用できます。両方の方法で、Menuクラスの値をCoffeeクラスに渡すことができます。 コーヒークラスでパラメータのコンストラクタを作成し、Menuクラスからコーヒークラスをインスタンス化パラメータ化コンストラクタを使用して

  1. セッター

コーヒークラスにNumberOfBagとCoffeNameのそれぞれを設定し、コーヒークラスをinstatiatingとの両方に値を設定することによって値を設定する2つのセッターを作成します。

2

同じクラスでオブジェクトを使用して割引を取得します。

double discountCoffeOne = coffeOne.getDiscount(); 

これですべての作業が完了しました。

CoffeClasは、必要な値を持つオブジェクトのモデルとして使用します。そうすれば、別の名前のCoffeをインスタンス化して使用するだけで、さまざまな種類のCoffeを作成できます。

必要に応じて、オブジェクトの属性を変更するには、getterssettersを使用する必要があります。値が変更されないと思われたり、これらの属性を変更する権限がない場合は作成しないでください。

public setCoffeeName(String coffeeName){ 
    this.coffeeName = coffeName 
}; 

public getCoffeeName(){ 
    return coffeName; 
} 

;)

ああ、ちょうどazroのように言った:

値を渡すためにinorderを、ここで

関連する問題