前回に書いたクラスで、コンストラクタを呼び出した時は以下のように書きました。
TestClass tc = new TestClass(100, 200);
これはコンストラクタを呼ぶと同時に引数、100、200をつけています。
このコンストラクタの呼び方を変更して、引数をつけないで呼び出す方法もやってみます。
具体的には下記のように記述します。
TestClass tc = new TestClass();
また、ひとつのクラスの中にはコンストラクタが複数あってもエラーにはならないです。
全体として下記のように記述してみました。
詳しい動作検証は、また後ほどやります。
public class TestClass2 {
public static void main(String[] args) {
int retA;
System.out.print("hello\n");
//これだとエラーになる
//TestClassSub tc = new TestClassSub();
//引数をつけるとエラーにならない(コンストラクタで使う為?)
TestClassSub tc = new TestClassSub(100, 200);
retA = tc.getAB();
System.out.print("retA -> " + retA);
}
}
class TestClassSub {
int TestA;
int TestB;
TestClassSub(int a, int b) {
//やっていることは「setTest」メソッドを同じ
TestA = a;
TestB = b;
}
TestClassSub() {
//引数なしコンストラクタ用
}
void setTest(int a, int b){
TestA = a;
TestB = b;
}
int getAB(){
return TestA + TestB;
}
}
実行した結果は次のようになります
hello retA -> 0