main()の中でクラスやメソッドを呼び出す際の注意事項
C言語と同様、Javaアプリケーションを作成する場合、main()でプログラムは始まります。しかしながら、C言語との違いで最初戸惑うことがあります。例えば次のようなプログラムはエラーになります。
public class Application1 {
int i;
public void test(int i) {
System.out.println(i);
}
public static void main(String[] args) {
i = 10;
test(i);
}
}
staticであるmain()からは、staticでない関数や変数を呼ぶことはできません。つまり、もし、i とか test 等を定義して利用するならば、それらは static でなければならないのです。これは困りますね。こういう場合は、下記のようにしたらいいんです。
public class Application1 {
int i;
// mainを代役する関数を定義し、その中で関数を呼ぶ
public void submain() {
i = 10;
test(i);
}
// 使いたい関数
public void test(int i) {
System.out.println(i);
}
// 自身をnewしてsubmain関数を呼ぶ
public static void main(String[] args) {
new Application1().submain();
}
}