次のようなプログラムを作り、コンパイル後、実行しました。
public class TestClass { 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; } void setTest(int a, int b){ TestA = a; TestB = b; } int getAB(){ return TestA + TestB; } }
一番最初に、TestClassSubのインスタンスを作ろうとした時に、下記のようなエラーが表示されました。
d:\data\java>javac TestClass.java TestClass.java:7: シンボルを見つけられません。 シンボル: コンストラクタ TestClassSub() 場所 : TestClassSub の クラス TestClassSub tc = new TestClassSub(); ^ エラー 1 個
少し悩んでいたところ、TestClassSubのコンストラクタは引数を書いていたので、インスタンスを作る際にも引数がないとエラーになることに気づき、引数をつけると無事にコンパイルがとおりました。
インスタンスを作り、「getAB」というメソッドを試したまでですが、無事に下記のように表示されました。
d:\data\java>java TestClass hello retA -> 300
まずはエラーにならずにサクっと動作させるようにして進みたいと思います。
エラーでつまずくと、少し後ろ向きになってしまいますが、そうゆう場合には、一旦できているところまでを見直しつつ、なるべく前向きに勉強していきます。
道は長い