おぼえがき_コンストラクタ
//オブジェクトの生成
Test test = new Test();
オブジェクトtestが生成されると同時に、Testクラスの中の特殊なメソッドTest()が実行される。
特殊なメソッドを「コンストラクタ」と呼ぶ。
コンストラクタは、
・オブジェクト生成時、すぐに実行されるメソッド。
→フィールドの初期値設定がよく行なわれる。
・書かなくても良い。
・戻り値を持たないメソッド。
・引数を持たせることができる。
・オーバーロードできる。
・既に作られていたオブジェクトのコピーを作ることができる。
//コンストラクタに引数を持たせた
class Test {
int m;
int n;
Test(int i,int j){
m = i;
n = j;
}
int sum(int i,int j){
return m+n+i+j;
}
}
public class sample19{
public static void main(String[] args){
Test test = new Test(10,5);
System.out.println(test.sum(2,3));
Test test2 = new Test(10,0);
System.out.println(test2.sum(2,3));
}
}
実行結果
20
15
//引数が渡されるコンストラクタをオーバーロードで区別している。
//オブジェクトをコピーして、コンストラクタに設定。
class Test{
int m;
int n;
Test(int i,int j){
m=i;
n=j;
}
Test(Test testC){
m=testC.m;
n=testC.n;
}
int sum(int i,int j){
return m+n+i+j;
}
}
public class sample19{
public static void main(String[] args){
Test test = new Test(10,5);…(1)
test.m++;…(2)
test.n++;…(3)
Test test2 = new Test(test);…(4)
System.out.println(test2.sum(2,3));…(5)
}
}
実行結果
22
(1)…iに10、jに5が代入される。mに10、nに5が代入される。
(2)…test.mが11になる。
(3)…test.nが6になる。
(4)…test2.mにtest.m、test2.nにtest.nが代入される。
(5)…11+6+2+3=22。