使用匿名内部类完成之前的几种操作

时间:2021-02-25 12:16:42   收藏:0   阅读:0

其实我们可以使用匿名内部类来完成之前的那些操作:

 1 package com.hw.second0224;
 2 public class MyRunnableTest {
 3     public static void main(String[] args) {
 4         Runnable r = new Runnable(){
 5             @Override
 6             public void run() {
 7                 // TODO Auto-generated method stub
 8                 for(int i = 0;i < 100;i++)
 9                 {
10                     System.out.println(Thread.currentThread().getName()+":"+i);
11                 }
12             }
13         };
14         Thread t = new Thread(r,"thread");
15         t.start();
16     }
17 }

这里相当于,定义了一个类,实现了Runnable这个接口,并实现了里面的run方法。new Runnable()相当于调用里面的构造方法。然后我们再创建一个thread对象,再调用里面的start方法即可。

其实最后两句还可以这么写,直接变成一行代码:

1 new Thread(r,"thread").start();

也是一样的效果。

或者还可以这么干:

 1 package com.hw.second0224;
 2 public class MyRunnableTest {
 3     public static void main(String[] args) {
 4         Thread t = new Thread(){
 5             @Override
 6             public void run(){
 7                 for(int i = 0;i < 100;i++)
 8                 {
 9                     System.out.println(Thread.currentThread().getName()+":"+i);
10                 }
11             }
12         };
13         t.start();
14     }
15 }

这个也是一个匿名内部类,Thread加一个大括号表示继承自Thread的,然后在里面重写run方法,接着再调用start方法就可以了。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!