-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

4

Java 不允许您在方法中定义方法。它甚至没有任何语义规则来说明它会做什么。您期望示例 2 做什么?

很清楚示例 1 的作用。inter您创建一个用空主体调用的方法。然后,在 中run,您调用它。

但是 2 应该怎么做呢?inter你在里面创建一个方法run。那会做什么呢?你什么时候打电话?

于 2013-09-30T08:04:38.390 回答
1

因为您不能在方法中定义方法。

于 2013-09-30T08:04:45.243 回答
1

如果您实际上在方法中声明了一个方法,它总是会导致错误。Java 是严格面向对象的,它要求方法属于一个类。换句话说,你必须在类中声明你的方法。JavaScript、Python 和其他面向对象的语言放松了这个严格的规则,但 Java 没有。在 stackoverflow 上阅读此线程。这几乎是同一个话题。

于 2013-09-30T08:17:45.770 回答
0

无法在另一个方法中创建方法。

于 2013-09-30T08:05:12.650 回答
0

run() 是一个方法,你不能在方法中定义新方法。方法在类部分而不是在方法内部定义

于 2013-09-30T08:05:47.253 回答