問題
Humanクラスをインスタンス化してmanを作り、自己紹介メソッドsayHalloを実行してください。
public class Human {
String name; //インスタンス変数を定義
int age;
public Human(String name, int age) { // コンストラクタを追加
this.name = name; //インスタンス化した時に受け取ったnameとageを
this.age = age; //インスタンス変数に代入し初期化する。
}
//インスタンスメソッドsayHelloを追加
public void sayHello() {
System.out.println("私の名前は" + this.name + "です。" + this.age + "歳です。");
}
// 動作確認用メソッド
public static void main(String[] args) {
//Humanクラスをインスタンス化
Human man = new Human("山田太郎", 45);
//インスタンスメソッドsayHelloの呼び出し
man.sayHello();
}
}
//演算結果
//私の名前は山田太郎です。45歳です。
補足
- インスタンス変数
→作られるインスタンスのもつ性質にあたるもの。インスタンス化しないと使えない。
(※クラス変数は一つしか定義できない。インスタンスがなくても使用できる。staticがつく。) - インスタンスメソッド
→作られるインスタンスの動作にあたるもの。インスタンス化しないと使えない。
(※クラスメソッドはクラスに一つだけ。インスタンス化しなくても使える。staticがつく。) - インスタンス化
インスタンスを作ること。 - コンストラクタ
インスタンス化する際に自動で行う前処理。主に初期化。クラス名と同じ名前にしなければならない。戻り値はなし。(コンストラクタ自身が戻り値と考えると納得!) - this.
→変数の前につけて、自身のクラスの変数であることを示す。「自分の」と訳すとわかりやすい。
今回のコンストラクタではインスタンス化の際に引数を受け取る変数と最初に定義した変数を区別するために用意。