gpt4 book ai didi

java - 内部类可在 Java 中运行

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:01 25 4
gpt4 key购买 nike

假设我有一个名为“Example”的类

在“示例”中我有一个可运行的内部类

我在“Example”中执行runnable

public class Example {
public Example() {
//executing the runnable here
}

private void a() {
}
public void b() {
}

public class RunMe implements Runnable {

public void run() {
a();
b();
}

}
}

假设 Example 在主线程上运行会发生什么?

a 和 b 是从 RunMe 线程还是主线程运行?

a 是私有(private)的 b 是公共(public)的有关系吗?

最佳答案

您错过了使我们能够回答您的问题的关键代码段 - 构造函数。

如果你的构造函数看起来像这样:

public Example() {
(new Thread(new RunMe())).start();
}

然后 a()b() 将在您刚刚创建的线程(您称之为“RunMe”线程)上运行。

但是,如果您的构造函数如下所示:

public Example() {
(new RunMe()).run();
}

然后你实际上并没有在另一个线程上运行它(你只是在另一个类中调用一个方法,它恰好被称为“运行”),所以 a()b() 将在“主”线程上运行。

私有(private)/公共(public)的东西在这里是无关紧要的,因为 RunMe 是一个内部类,所以甚至可以访问 Example 的私有(private)方法。

关于java - 内部类可在 Java 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20370755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com