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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯瑞君老师 黑马粉丝团   /  2011-12-19 14:14  /  2217 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class ThreadTest{
public static void main(String[] args){

new Thread()//我不明白这个地方,告我下这个地方的全写是怎么写的。
{
public void run()
for(int x=0;x<100;x++){
s.o.p()
}
}
}.start();

for(int x=0;x<100;x++){
s.o.p()
}
for(int x=0;x<100;x++){
s.o.p
}

6 个回复

倒序浏览
匿名内部类,
实际就是创建一个{【继承了Thread类并将run()方法进行了重写】的子类}的实例,然后该实例调用了start()方法,来启动线程。
等价于:
  1. class ThreadTest extends Thread
  2. {
  3.         public void run()
  4.         for(int x=0;x<100;x++)
  5.         {
  6.                 s.o.p()
  7.         }
  8. }

  9. ThreadTest tt = new ThreadTest();
  10. tt.start();
复制代码
使用匿名内部类的方法,主要可以简化书写。

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

回复 使用道具 举报
这是匿名内部类的使用。
也可以这样写:
Thread t =new Thread(){
  public void run()
{
     // do sth...
}
};
t.start();

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
是一个匿名内部类
回复 使用道具 举报
Thread t1=new Thread()
{
public void run()
for(int x=0;x<100;x++){
s.o.p()

};
t1.start.
回复 使用道具 举报
曾运 黑马帝 2011-12-19 16:12:46
地板
本帖最后由 曾运 于 2011-12-19 16:13 编辑

这是一个匿名内部类:
1,匿名内部类其实就是内部类的简写格式。
2,定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。
3,匿名内部类的格式:  new 父类或者接口(){定义子类的内容}
4,其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。如new Thread(){  这里重写Thread中的run()方法  }
new Thread(){  这里重写Thread中的run()方法  }       -----》是一个对象,一般只用一次,没有引用指向该对象,该对象继承自Thread类,所以能调用start()方法。
  1. //其实该段代码相当于:

  2. Thread t=new Thread()
  3. {
  4.     public void run()

  5.         for(int x=0;x<100;x++)

  6.         {

  7.                System.out.println(x);

  8.         }

  9. };

  10. t.start();
复制代码

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
刘健 黑马帝 2011-12-19 20:11:57
7#
匿名内部类,把可以单独提出来的线程写在了类里
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马