疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java继承,实现,匿名内部类


 

   

  ------------------------------------------------------

  /**  第一种方式:继承Thread类

  * 1. 定义一个类,然后让该类继承Thread类

  * 2. 重写run方法

  * 3. 创建定义的这个类的对象

  * 4. 启动线程

  */

  //继承Thread类

  public class MyThread extends Thread{

  public MyThread() {}

  public MyThread(String name) {

  super(name);

  }

  //run方法中封装的应该是要被线程执行的代码 ,run方法中代码的原则,一般存方的都是比较耗时的代码

  public void run (){

  for (int i = 0; i < 200; i++) {

  System.out.println(Thread.currentThread().getName() + "---" + i);

  }

  }

  }

  //测试方法

  private static void Test() {

  // 创建对象

  MyThread mt1 = new MyThread();

  MyThread mt2 = new MyThread();

  //启动线程

  // public void start()使该线程开始执行;Java 虚拟机调用该线程的 run 方法。

  mt1.start();

  //mt1.start();// 线程的启动只能是一次

  mt2.start();

  }

  -----------------------------------------------------

  /**  第二种方式:实现Runnable接口

  *    (1): 创建一个类,让该类实现Runnable接口

  *    (2): 重写run方法

  *    (3): 创建该类的对象

  *    (4): 创建Thread类的对象,然后把3中的对象作为参数传递给Thread

  *    (5): 启动线程

  */

  //实现Runnable接口

  public class MyThread2 implements Runnable {

  public MyThread2() {

  super();

  }

  public void run() {

  for(int x = 0 ; x < 200 ; x++){

  System.out.println(Thread.currentThread().getName() + "---" + x);

  }

  }

  }

  //测试方法

  private static void Test2() {

  // 创建MyThread的对象

  MyThread2 mt = new MyThread2();

  // 创建Thread类的对象,然后把3中的对象作为参数传递给Thread

  // public Thread(Runnable target)

  Thread t1 = new Thread(mt,"张飞");

  Thread t2 = new Thread(mt,"关羽");

  Thread t3 = new Thread(mt,"刘备");

  // 启动线程

  t1.start() ;

  t2.start() ;

  t3.start() ;

  }

  ------------------------------------------------

  /**  第三种方式:使用匿名内部类的方式实现

  *    new 类名/接口名() {

  *      方法重写 ;

  *    } ;

  */

  //测试方法

  //匿名内部类

  private static void Test3() {

  new Thread() {

  public void run() {

  System.out.println("线程执行了。。。。。。。");

  }

  }.start();

  }

  -------------------------------------