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