繁体   English   中英

可以在我的 class 中使用线程方法而不扩展线程 Class

[英]Can Thread method be used in my class without extending Thread Class

我是线程新手,在学习它时我无法理解以下内容,

public class myClass 
{ 
    public static void main(String args[]) throws InterruptedException
    {
        String[] myString = {"Object","Classes","Static","Final"};
        for(int i=0;i<myString.length;i++)
        {
            System.out.println(myString[i]);
            Thread.sleep(2000);
        }
    }
}

为什么我能够在不扩展线程 class 的情况下使用线程方法?

sleep 是一种 static 方法。 它不需要调用实例。

在 Java 中,只有 2 种方法可以使类/方法“可读”。 扩展Thread或实现Runnable 你在那里做的是 Thread.sleep() ,它只是说睡眠当前线程。

它只是 Thread 提供的 static 方法,正如您所发现的那样,它与多线程并没有太大关系。 static 方法意味着包含 class 的 object 不需要实例化即可调用该方法,这就是为什么您可以在不扩展线程的情况下调用 sleep() 的原因。

阅读Java 教程中的 static 方法 在使用线程之前学习语言的基础知识。 线程是一件很难掌握的事情,如果您不知道 static 方法是什么,那么现在开始使用它们还为时过早,恕我直言。

在这里,您使用的是Thread class 的静态成员方法,这就是您无需实例即可使用sleep() function 的原因。

sleep() 是“线程”class 的 static 方法。 您可能知道 static 方法由 sysntax 直接调用

MyClass.myStaticMethod().

你不需要实例化一个线程 object 来调用 sleep() 方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM