构造函数问题,谁能详细的说下这个程序的执行顺序

懒得搭理你 2010-12-16 08:53:12

public class ThreadTest implements Runnable{
public static void main(String[] args) {
ThreadTest t=new ThreadTest();
}
public ThreadTest(){
new Thread(t).start();
}
public void run() {
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("I Can Start MySelf");
}
}
...全文
62 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mopishv0 2010-12-16
  • 打赏
  • 举报
回复
编译都不过还能执行么?
向太阳奔跑 2010-12-16
  • 打赏
  • 举报
回复
涉及到线程的问题了,还没学习,不知道。不过你那个t是局部变量,怎么能在另一个方法中引用。
懒得搭理你 2010-12-16
  • 打赏
  • 举报
回复
犯傻了我,悲催。。。
那谁帮忙来解释下执行顺序啊,
sunyiz 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangyinbin 的回复:]
不是先执行主函数?里面就创建了t嘛

引用 3 楼 sunyiz 的回复:
是呀,这个t是哪来的……
[/Quote]

那是属于主函数的局部变量
不能在主函数以外的地方引用
tang5525 2010-12-16
  • 打赏
  • 举报
回复
t是有问题的,首先是在main方法中,在new 一个新对象时,调用构造函数 public ThreadTest(){
new Thread(t).start();
}
,不错的话估计后面再调用run()方法的!
懒得搭理你 2010-12-16
  • 打赏
  • 举报
回复
不是先执行主函数?里面就创建了t嘛
[Quote=引用 3 楼 sunyiz 的回复:]
是呀,这个t是哪来的……
[/Quote]
sunyiz 2010-12-16
  • 打赏
  • 举报
回复
是呀,这个t是哪来的……
懒得搭理你 2010-12-16
  • 打赏
  • 举报
回复
刚学java不久,啥都不懂。还望多多指教
[Quote=引用 1 楼 seeblossom 的回复:]
我晕,楼主,你确定你这段程序不报错?那个构造方法中的t去哪找?
[/Quote]
Seeblossom 2010-12-16
  • 打赏
  • 举报
回复
我晕,楼主,你确定你这段程序不报错?那个构造方法中的t去哪找?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧