main()の中でクラスやメソッドを呼び出す際の注意事項

C言語と同様、Javaアプリケーションを作成する場合,main()でプログラムは始まり ます。しかしながら、C言語との違いで最初戸惑うことがあります。例えば次のようなプログラムはエラーになります.

public class Application1 {

int i;

public void test(int i) {

System.out.println(i);

}

public stacic 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 stacic void main(String[] args) {
        new Application1().submain();  
}