Java はじめて19 〜コンストラクタの役割を見る〜

今回は、以前作成したアプリ=「コーダー銀行ATMアプリ」をカスタムしながら、javaで提供されているAPIの使い方を何個か見てみようと思います。

String

すでに使用しているクラスです。
主に文字列として使用します。そして、文字列の比較もします。編集、切り出しなどいろいろなメソッドがあるので、一部抜粋して見ます。

  1. equals()メソッド
  2. substring()メソッド
  3. valueOf()メソッド

これらのメソッドはよく使うと思われるので、紹介いたします。
まずは1番から行きます。

String str = "テスト";
if ("テスト".equals(str) {
   System.out.println("テストです。");
}

2番目

String str = "テスト";
String result = str.substring(0, 1);
System.out.println("substring = " + result); // 「テ」と出力される

3番目

int num = 10;
String numStr = String.valueOf(num);
System.out.println(numStr.substring(0,1); // 「1」

3番目は「int型」から「文字列(String)型」へ変換しています。

クラスをカスタム

早速問題を出します。
【問題】
「現在、コンストラクタで預金額を1000に設定しています。
これをコンストラクタに渡した値で預金額を初期化できるように修正するにはどうしたら良いでしょうか?」

ヒント;ソースのダウンロードはこちらからできます

どこを修正すれば良いか?

初めに考えるのは上記の疑問に答えるための答えを考えます。
問題にある「コンストラクタで。。。」という部分に着目します。
そして、コードを見てみると下のようになっています。

/**
 * コンストラクタ
 */
public MainBank() {
    cal = new Calcuration();
}

これでCalcurationクラスを初期化しています。ではコンストラクタの中身は?

public Calcuration() {
    // 預金額は1000円スタート
    yokingaku = 1000;
}

上のようになっています。コンストラクタは引数なしなので、預金額に直接「1000」を代入しています。
ここまで記載すれば、答えは見えてくると思います。

では、次の問題

【問題2】

このアプリにはバグがあります。それを見つけて修正してください。今のところ自分が認識しているのは入力したときにあるバグなのですが、そのほかにもあるかもしれません。
なぜかというと、テストをしていないからです。
本番環境(サーバー)にリリースしようと考えている人は絶対に真似しないようにしてください。テストはちゃんとやりましょう。

この問題の答えは書きません。見つけて見てください。

でわでわ。。。