- ベストアンサー
Java初心者によるKontoクラスの理解の困難さとは?
- Javaを独学で学び始めたばかりの初心者が、「Konto konto」という記述について理解ができないと相談しています。
- Kontoクラスの中にある「protected static void kontostandAusgeben(Konto konto)」と「protected static void geldAbheben(double summe, Konto konto)」の引数として「Konto konto」と書かれている部分が理解できないそうです。
- 回答者はJavaのKontoクラスについて詳しく解説し、初心者が理解しやすいように説明しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>一つ疑問に思ったのですが、下記のように書き直すことも可能だとすると、kontostandAusgebenと、geldAbhebenメソッドを使用しているのは何か利点があるのでしょうか?その方が見やすいからということでしょうか? kontostandAusgeben の例示は、何度も使用される処理を、直接記述するのではなく、メソッド化して呼び出しましょうという意味があります。 kontostandAusgeben は、1行なので main メソッド中に直接記述してもさほど問題はありませんが、10行、20行とメソッドの行数(表示する項目数)が増えたときに kontostandAusgeben が例示するテクニック、メソッド化が役に立ちます。あるいは、1,2行であってもちょっとこった数式を使う場合は、メソッド化して名前で呼んだ方が、読んだときに、あるいは他人が読むときに分かりやすくなります。 まあ、サンプルコードではメソッド化している意味は分かりづらいですが、本格的にコードを記述するときには、長期的視点(保守性)、俯瞰的視点(大規模開発)で使えるテクニックや基礎的な理解の有無が重要になりますので今はそういうところは気にせずJavaについての理解を深めると良いと思います。
その他の回答 (2)
- OrangeCup150
- ベストアンサー率62% (109/174)
>Javaを独学で学び始めたばかりで、まだ良く分かっていない初心者です。 Java を独語(ドイツ語)で独学・・・。洒落ですか・・・。 public abstract class Konto public class Sparkonto extends Konto public class Girokonto extends Konto Sparkonto, Girokonto クラスは、 Konto クラスを継承 (extends) しています。ここで、 Konto は親クラスまたは基底クラスとよび、 Sparkonto, Girokonto は子クラスまたは派生クラスと呼びます。派生クラスは、派生クラスとしてだけでなく親クラスとして扱うこともできます。そのため、 kontostandAusgeben の引数 Konto konto に指定できます。つまり、 kontostandAusgeben(sparkonto) の sparkonto は、実体としては Sparkonto クラスですが、引数指定時には Konto クラスとして扱われます。
お礼
早速のお返事どうもありがとうございます。 >Java を独語(ドイツ語)で独学・・・。洒落ですか・・・。 確かに ^^ 身近に聞ける人もいないし、ネットであれこれ検索しても良く分からず悶々としていたので、 お返事を頂けてとても嬉しいです。 一つ疑問に思ったのですが、下記のように書き直すことも可能だとすると、kontostandAusgebenと、geldAbhebenメソッドを使用しているのは何か利点があるのでしょうか?その方が見やすいからということでしょうか? 度々申し訳ありませんが、宜しくお願い致します。 ---------------------------------------------------- public class BankApp { public static void main(String[] args) { Sparkonto sparkonto = new Sparkonto(111111); sparkonto.einzahlen(2346.88); System.out.println("Kontostand: " + sparkonto.getSaldo() + "\n"); sparkonto.abheben(2000); System.out.println("Kontostand: " + sparkonto.getSaldo() + "\n"); sparkonto.jahresZinsenAddieren(); System.out.println("Kontostand: " + sparkonto.getSaldo() + "\n"); System.out.println("\n"); Girokonto girokonto = new Girokonto(111111); girokonto.einzahlen(1346.99); System.out.println("Kontostand: " + girokonto.getSaldo() + "\n"); girokonto.abheben(2000); System.out.println("Kontostand: " + girokonto.getSaldo() + "\n"); girokonto.ueberweisen(5000, 222222); System.out.println("Kontostand: " + girokonto.getSaldo() + "\n"); } }
- Tacosan
- ベストアンサー率23% (3656/15482)
このプログラムを書いた人に聞くのが最善だと思う.
お礼
詳しく教えて頂いてどうもありがとうございます! また分からないことが出てきた際には宜しくお願い致します。