gpt4 book ai didi

java - 在对 Thread.currentThread(); 的方法调用中,Thread 指的是什么?和 Thread.sleep();?

转载 作者:行者123 更新时间:2023-12-01 08:11:18 28 4
gpt4 key购买 nike

我在一本 Java 书中读到了下面的代码。我知道主类默认继承 Thread 类,所以 currentThread();而不是 Thread.currentThread();也会做这项工作。

但我不明白的是:Thread.currentThread(); 中的 Thread 是什么?或 Thread.sleep();--类还是对象?类和它的对象可以有相同的名称吗?

class Demo {

public static void main(String args[]) {
Thread t=Thread.currentThread();
t.setName("My Thread");
System.out.println("Current Thread: "+t);

try {
Thread.sleep(1000);
}
catch(InterruptedException e) {
System.out.println(e);
}
}
}

最佳答案

I understand that main class by default inherits Thread class so, currentThread(); instead of Thread.currentThread(); will also do the job.

不,这是不对的。默认情况下,有一个运行 main 方法的“主”线程,但这不会“继承”线程类。 Thread.currentThread() 正在调用 java static 方法。他们是不同的。

What is Thread in Thread.currentThread(); or Thread.sleep();-- A class or an object?

Thread.currentThread()Thread.sleep() 都是静态方法。看这个tutorial on static methods 。他们正在使用 Thread 类。这两个调用不涉及任何实例对象。

Thread.currentThread() 返回 Thread 类的实例,该类是运行 main 方法的“主”线程。在您的示例中,tThread 类的实例。再次检查教程和其他 Java 文档,了解实例方法和静态方法之间的区别。

And can a class and its object have same name?

不幸的是,是的。这就是为什么字段名称的大写和小写对于程序员更容易看到差异很重要。

// this compiles unfortunately
Thread Thread = Thread.currentThread();

// leading lowercase field names is a much better pattern
Thread thread = Thread.currentThread();

关于java - 在对 Thread.currentThread(); 的方法调用中,Thread 指的是什么?和 Thread.sleep();?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17068359/

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