2017-05-19 8 views
-3

これに問題があるようです。私は別のクラスから値をつかんで、というDoubleに保存しています。これは別のクラスのメソッドでつかまれます。次にtempMoneytotalMoneyに追加します。考えているのはに与えられたの値を加え続けることで、totalMoneyが上がり、覚えています。合計値に一時的な値を追加していますか?

実行すると、最初の計算が行われます。ただし、次回のメソッド呼び出し時には、totalMoneyを忘れてしまい、以前の計算のtempMoneyからではなく、0.0から再び開始されます。

import java.util.ArrayList; 
import java.util.Scanner; 
import java.io.File; 
import java.io.PrintStream; 

public class Accountant { 

    Member m = new Member("",0,0,""); 
    President p = new President(); 
    Double totalMoney = 0.0; 

    public void pay(Double tempMoney) { 

     System.out.println("Would you like to pay for your membership now? Y/N"); 
     Scanner sYes = new Scanner(System.in); 
     String yesS = sYes.next(); 

     if(yesS.equalsIgnoreCase("Y")) { 
      totalMoney = totalMoney + tempMoney; 
      System.out.println("Total money " + totalMoney + " temp money " + tempMoney); 
     } 
    } 
} 
+0

あなたのコードを貼り付けてください。 – d9ngle

+0

コードのスクリーンショットではなく、正しい形式のコードを質問に投稿してください。 – Jesper

+0

あなたの質問に答えるには:前に作成した 'totalMoney 'の値を保持しているオブジェクトを再利用するのではなく、新しい' Accountant'オブジェクトをどこかに(あなたが表示していないコードで) '。 – Jesper

答えて

0

使用

public static Double TotalMoney = 0.0 

代わりの

Double TotalMoney = 0.0 
+0

それは感謝しました。しかし、なぜそれが正確に説明できますか? – DatBoiDoe

+0

静的変数と動的変数について調べてみる必要があります。 Javaでは、静的宣言のない変数は、オブジェクトを呼び出すたびに再初期化されます。変数を生きたままにしたい場合は、静的キーワード –

+0

を追加する必要があります。オブジェクト指向プログラミングの概念とJavaキーワードについて教授に質問するか、オンラインで学んでください。 https://www.javatpoint.com/java-oops-concepts http ://beginnersbook.com/2013/05/java-introduction/ –

関連する問題