- ベストアンサー
所持金の計算式と表示方法
- Kakeiboクラスの中にあるクラス変数syojikinは、正しい日付での収入と支出に基づいて計算される所持金を表します。
- 計算式はプログラム内で定義されており、具体的な例としては、「収入から支出を引いた金額」が所持金となります。
- プログラム内で所持金を表示するには、mainクラス内でKakeiboクラスのインスタンスを作成し、そのshowDataメソッドを呼び出すことで表示できます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
わけ分からないところがいっぱりありますが、現状のソースを希望通りにするだけなら。 class Kakeibo { public static int syojikin = 0; private int year; private int month; private int date; private int syunyu; private int shisyutsu; private Kakeibo() { year = 0; month = 0; date = 0; syunyu = 0; shisyutsu = 0; } public Kakeibo(int y, int m, int d, int sy, int sh) { this(); if (sy >= 0 && sh >= 0) { year = y; month = m; date = d; syunyu = sy; shisyutsu = sh; syojikin = syojikin + sy - sh; //追加 } else { System.out.println("入力した金額は無効です。"); } } public void showData() { System.out.print(year + "年" + month + "月" + date + "日:収入" + syunyu + "円、支出" + shisyutsu + "円\n"); } } class KNO4 { public static void main(String args[]) { //System.out.println("所持金:" + syojikin + "円"); //コンパイル通らないので・・ System.out.println("所持金:" + Kakeibo.syojikin + "円"); // Kakeibo kakeibo1 = new Kakeibo(); // kakeibo1.showData(); Kakeibo kakeibo2 = new Kakeibo(2010, 12, 1, 3000, 500); kakeibo2.showData(); Kakeibo kakeibo3 = new Kakeibo(2010, 12, 1, -5000, 300); kakeibo3.showData(); Kakeibo kakeibo4 = new Kakeibo(2010, 11, 7, 0, 1000); kakeibo4.showData(); Kakeibo kakeibo5 = new Kakeibo(2010, 11, 18, 100, 800); kakeibo5.showData(); System.out.println("所持金:" + Kakeibo.syojikin + "円"); //追加 } } なぜちゃんとした回答には返事しないのでしょうか・・
その他の回答 (2)
- osamuy
- ベストアンサー率42% (1231/2878)
案1)コンストラクタにて、入力が妥当であった際に、所持金を更新する。 案2)インスタンスメソッドとして、自オブジェクトの情報を元に所持金を更新するメソッドを定義しておいて、全オブジェクトに対して更新メッセージを送信する。 ――という手が考えられるかと。 案1、案2のどちらでもかまわない(当然案1、2以外でも可)ので、 適当にプログラミングできそうなほうを検討してみては。
- salsberry
- ベストアンサー率69% (495/711)
> 収入と支出に基づいて所持金を計算する計算式がわかりません。 小学校の算数レベルの話だと思いますが (新しい所持金)=(元の所持金)+(収入)-(支出)
補足
所持金を計算する方法が分からないし、もう忘れてしまったから質問したのです。悪かったね!!!