スポンサードリンク

Java 同じコードはメソッドにしてまとめる

PersonTest クラスで画面に出力する部分には、似たようなコードが書かれています。このようなコードが増えてくると、何らかの修正をするときに修正箇所が増え、ミスの原因になります。仮に似たようなコードを100箇所修正する場合を考えてみると、大変さがわかると思います。

java-197.gif

Javaにはメソッドという便利な仕組みがあります。同じようなコードはまとめて一つにして、メソッドとして呼び出すように改良してみましょう。そうすると変更箇所は1箇所で済むようになります。

前に作ったソースコードは残しておきたいので、コピーして修正することにします。

【1】sample01 フォルダをフォルダごとコピーして、sample02 フォルダを作ります。

java-196.gif


【2】sample02 の PersonTest.java を以下のように修正します。

java-198.gif

保存先 C:\java\sample02
ファイル名 PersonTest.java

class Person {
  String name;
  int age;
  String address;

  Person(String _name, int _age, String _address) {
    name = _name;
    age = _age;
    address = _address;
  }

  void say(){
    System.out.println("私の名前は" + name + "です。年齢は"
    + age + "才で、住所は" + address + "です。");
  }

}

class PersonTest {
  public static void main(String[] args) {
    Person taro = new Person("太郎", 21, "東京都港区");
    taro.say();

    Person hanako = new Person("花子", 18, "北海道札幌市");
    hanako.say();
  }
}



【3】コマンドプロンプトを起動して、カレントディレクトリを sample02 にします。

java-199.gif


【4】javac PersonTest.java と入力し、コンパイルします。

java-200.gif


【5】java PersonTest と入力し、プログラムを実行します。データが表示されたら成功です。

java-201.gif


【解説】

(1)今回の概要をまとめると以下の図のようになります。クラスに say() メソッドを追加したことで、インスタンスにもそれぞれメソッドが追加されました。

java-202.gif


(2)メソッドの定義は以下のように書きます。

戻り値の型 メソッド名(仮引数のリスト){
  内容
  return 戻り値;
}

*戻り値が無い場合は、戻り値の型に void と書き、return を省略できます。
*仮引数が必要ない場合は省略できます。


(3)インスタンス名.メソッド名(); で呼び出すと、インスタンスがあたかも人のように答えてくれるイメージです。

java-203.gif

*メソッドの呼び出しには()カッコが付きますので、すぐにフィールドと区別できます。
・インスタンス名.フィールド名;
・インスタンス名.メソッド名();

今はメソッドの処理が少ないから感じないかもしれませんが、クラスやメソッドは「複雑な処理を簡単な名前で呼び出す」だけでこなしてくれる便利な仕組みなのです。

例えば数十行の複雑な処理を インスタンス名.メソッド名(); だけで行うことができるのですからすごいですよね。


スポンサードリンク






Java初心者入門講座TOPへ