java线程调用sleep()问题,下面例子,为什么主方法那 Thread.sleep(),要写Thread?这为啥指主线程,

还有,线程MyThread里面,为什么就直接写sleep()呢,静态方法不是要通过类名来引用吗,不是应该MyThread.sleep()吗importjava.util.... 还有,线程MyThread里面,为什么就直接写sleep()呢,静态方法不是要通过类名来引用吗,不是应该MyThread.sleep()吗

import java.util.*;
public class TestInterrupt {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
try {Thread.sleep(10000);}
catch (InterruptedException e) {}
thread.interrupt();
}
}

class MyThread extends Thread {
boolean flag = true;
public void run(){
while(flag){
System.out.println("==="+new Date()+"===");
try {
sleep(1000);
} catch (InterruptedException e) {
return;
}
}
}
}
展开
 我来答
靖__jing
推荐于2016-08-07
知道答主
回答量:1
采纳率:0%
帮助的人:2.9万
展开全部
sleep(1000) 前面没有加类名或者对象名,表示默认当前对象的方法,当前就是一个Thread所以可以不写,也可以写成this.sleep(1000)
追问
那,为什么主方法那 Thread.sleep(),要写Thread?这为啥指主线程,而且不写不行?
追答
运行程序肯定有一个主线程的,要让主线程休眠就使用Thread.sleep(),你不写就表明调用当前类的sleep(),如果当前类不是一个线程类就会报错。。
zym16621
2011-10-06 · TA获得超过573个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:134万
展开全部
你好,很高兴为你解答。
sleep方法是Thread类的静态方法。
MyThread 中sleep前不用写Thread。是因为MyThread 继承了Thread类。
而TestInterrupt与Thread类无任何关系,所以必须使用Thread.sleep()
追问
如果要写是写继承的方法是MyThread.sleep()还是Thread.sleep()
追答
其实你在MyThread 类中调用 sleep(1000)等价于调用Thread.sleep(1000),也等价于MyThread.sleep(1000)。只不过可以省略类名。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狄祺2a
2020-11-02
知道答主
回答量:8
采纳率:0%
帮助的人:6197
展开全部
  1. 首先,你这个问题,好经典!

    • 我是准备问跟你一样的问题,搜索到该问题的。通过查阅资料、思考后特写写我的一些所获。

  2. 你一共提了2个问题:

    • 问题(1):TestInterrupt 类,为什么主方法那 Thread.sleep(),要写Thread?这为啥指主线程。

      • 我的理解:把 Thread.sleep() 理解为当前线程,只是由于 TestInterrupt 类中的代码只会是 主线程在执行,因此说主线程。MyThread 的实例执行 start() 方法后,运行 run() 方法中的代码,这是子线程在执行。其中 也可以写 Thread.sleep(),此时就是子线程执行的。因此,将 Thread.sleep() 理解为当前线程 更贴切,方便理解。

    • 问题(2):MyThread里面,为什么就直接写sleep()呢,静态方法不是要通过类名来引用吗,不是应该MyThread.sleep()吗?

      • a. 静态方法,也可以通过实例进行调用的;

      • b. 子类从父类中继承访问限制 大于等于 protected(即 protected 和 public)的方法和成员,子类对这些方法和成员的调用属于内部调用,可直接写成 this.method() 方式 this 关键字也可省略不写。

    • 以上是我的个人理解。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式