A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wtjohn 中级黑马   /  2014-10-24 21:37  /  1454 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. new Thread(new Runnable()  //匿名
  2.                 {  
  3.                         public void run()
  4.                         {
  5.                                 System.out.println("runnable run");
  6.                         }
  7.                 })
  8.                 {
  9.                         public void run(){
  10.                                 System.out.println("subthread run");
  11.                         }
  12.                 }.start();  //结果:subthread run
复制代码


评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

9 个回复

倒序浏览
{:3_54:} 顶上去...
回复 使用道具 举报
你这写的什么乱七八糟的。。。
回复 使用道具 举报
匿名内部类;
首先説他的结构实际上是这样的
new Thread(实现了Runnable接口的类){Thread类的run方法}.start()
説白了就是一个匿名内部类中用了一个匿名内部类
类似于这样
写一个类 实现了Runnable接口
写一个类 继承了Thread类
然后再把 自定的实现了Runnable接口的类丢给继承了Thread的孑类开启这个子类

为什么是这个结果我真的不清楚觉得可以这么理解!如果你在一个类中引用一个方法会怎么引用?
肯定是把类传进去然后定义一个名字一样的方法,然后调用传入类的同名方法
回复 使用道具 举报
视频说得最清楚了...
回复 使用道具 举报
noiary 发表于 2014-10-24 23:04
视频说得最清楚了...

视频有讲这个吗? 我是从中间开始看的{:3_54:}
回复 使用道具 举报
new Thread(){}.start();就是这么简单,new了一个Thread线程并开启,中括号里面的是线程运行的内容——输出语句subthread run
至于他的小括号里面写了什么内容完全不用管,这个相当于线程的参数,中括号里面才是覆盖run方法的内容
例如 new person()和new person(“张三”),
如果想要小括号里面的也运行,里面写成 new Rannable(){}.run() 这样才是开启new Rannable线程
如果只是new Rannable(){}意思是创建了一个线程,但是并没有运行
回复 使用道具 举报
郑飞 高级黑马 2014-10-25 09:29:50
8#
new Thread(runnable子类对象)//中间那一大堆就是个匿名子类对象
                {
                        public void run(){
                                System.out.println("subthread run");
                }
                }.start();  //结果:subthread run
回复 使用道具 举报
noiary 高级黑马 2014-10-25 15:23:20
9#
wtjohn 发表于 2014-10-24 23:57
视频有讲这个吗? 我是从中间开始看的

匿名内部类,有是肯定有,但具体在哪一天忘了.
回复 使用道具 举报
wtjohn 中级黑马 2014-10-25 15:37:00
10#
英雄传说ER 发表于 2014-10-25 02:21
new Thread(){}.start();就是这么简单,new了一个Thread线程并开启,中括号里面的是线程运行的内容——输出 ...

有点迷糊的就是 平常实现多线程不就两种方法嘛..
new Thread(实现Runnable的子类对象).start()
new Thread{重写run方法}.start()

上面这个是 既传了个(Runnable子类对象)又在{}里重写了run方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马