前回に書いたクラスで、コンストラクタを呼び出した時は以下のように書きました。
1 | TestClass tc = new TestClass(100, 200); |
これはコンストラクタを呼ぶと同時に引数、100、200をつけています。
このコンストラクタの呼び方を変更して、引数をつけないで呼び出す方法もやってみます。
具体的には下記のように記述します。
1 | TestClass tc = new TestClass(); |
また、ひとつのクラスの中にはコンストラクタが複数あってもエラーにはならないです。
全体として下記のように記述してみました。
詳しい動作検証は、また後ほどやります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 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; } } |
実行した結果は次のようになります
1 2 | hello retA -> 0 |