Javaにはメソッドという便利な仕組みがあります。同じようなコードはまとめて一つにして、メソッドとして呼び出すように改良してみましょう。そうすると変更箇所は1箇所で済むようになります。
前に作ったソースコードは残しておきたいので、コピーして修正することにします。
【1】sample01 フォルダをフォルダごとコピーして、sample02 フォルダを作ります。
【2】sample02 の PersonTest.java を以下のように修正します。
保存先 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 にします。
【4】javac PersonTest.java と入力し、コンパイルします。
【5】java PersonTest と入力し、プログラムを実行します。データが表示されたら成功です。
【解説】
(1)今回の概要をまとめると以下の図のようになります。クラスに say() メソッドを追加したことで、インスタンスにもそれぞれメソッドが追加されました。
(2)メソッドの定義は以下のように書きます。
戻り値の型 メソッド名(仮引数のリスト){
内容
return 戻り値;
}
*戻り値が無い場合は、戻り値の型に void と書き、return を省略できます。
*仮引数が必要ない場合は省略できます。
(3)インスタンス名.メソッド名(); で呼び出すと、インスタンスがあたかも人のように答えてくれるイメージです。
*メソッドの呼び出しには()カッコが付きますので、すぐにフィールドと区別できます。
・インスタンス名.フィールド名;
・インスタンス名.メソッド名();
今はメソッドの処理が少ないから感じないかもしれませんが、クラスやメソッドは「複雑な処理を簡単な名前で呼び出す」だけでこなしてくれる便利な仕組みなのです。
例えば数十行の複雑な処理を インスタンス名.メソッド名(); だけで行うことができるのですからすごいですよね。