2017-01-02 7 views
-4

ここから始めて、これが私の最初の質問です。フィールド内メソッドを使用するにはどうすればいいですか?

私は転送メソッド内でダブルmeblegを使用したい、と私はコンストラクタでmeblegにバランスに等しかったしましたが、残念ながら、バランスのパラメータの量が転送にmeblegに行きませんメソッド。どうすればこの問題を解決できますか?

私はプログラミング時に新しいです。だから私の質問に答えられたら、答えのリンクを提案することができますか?

class Acount { 

    static double mebleg; 

    public static void main(String[] args) { 
     Acount a = new Acount(100); 
     Acount b = new Acount(0.0); 
     Acount c = new Acount(0.0); 
     Acount.transfer(a, b, 50); 
     Acount.transfer(b, c, 25); 

    } 

    public Acount(double balance) { 
     mebleg = balance; 
    } 

    public static void transfer(Acount from, Acount to, double howMuch) { 
     System.out.println(Acount.mebleg - howMuch); 

    } 

} 
+0

おそらく、バランスのために静的変数( 'mebleg')を使いたくないでしょう。すべてのアカウントで同じになります。 –

+1

それで問題は何ですか?エラーが発生していますか?間違った出力? – Mureinik

+0

@ModusTollensください、慎重に私のコードを見て、私はキーワード "静的"を使用してください。 ** mebleg **は金額(私が100.0,0.0を意味する)のためにすべての口座に対して静的でなければなりません – nihat

答えて

3

インスタンスに使用する場合は、フィールドを静的にしないでください。それを変更する場合、transfer()メソッドはfrom.mebleg(または関連するゲッター)を使用する必要があります。

double mebleg; 

public Account(double initialBalance) { mebleg = initialBalance; } 

public static void transfer(Acount from, Acount to, double howMuch) 
{ 
    from.mebleg -= howMuch; 
    to.mebleg += howMuch; 
} 

(ここでは、トランザクション、同時処理、エラー処理、ここでは通貨単位のダブルの使用などは考慮されていません)。

関連する問題