-3

最初の例は可能ですが、例 2 は不可能であり、コンパイラから「式の開始が不正です」というエラー メッセージが表示されます。run() メソッド内でメソッドを定義できないのはなぜですか?

例 1

 public class TextUpdater implements Runnable {

    public void inter(){

    }

    @Override
    public void run() {

        inter();

    }

   }
}

例 2、不可能

 public class TextUpdater implements Runnable {

    @Override
    public void run() {

       public void inter(){  // results in error

       }

   }
}
4

5 に答える 5

1

メソッド内で実際にメソッドを宣言すると、常にエラーになります。Java は厳密にオブジェクト指向であり、メソッドがクラスに属する必要があります。つまり、クラスでメソッドを宣言する必要があります。JavaScript、Python、およびその他のオブジェクト指向言語では、この厳格なルールが緩和されていますが、Java では緩和されていません。stackoverflow でこのスレッドを読んでください。ほぼ同じ話題です。

于 2013-09-30T08:17:45.770 に答える