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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© LL111 初级黑马   /  2019-3-30 13:03  /  704 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

匿名内部类是内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的 子类对象。
开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,似乎得做如下几步操作,
1. 定义子类 2. 重写接口中的方法 3. 创建子类对象 4. 调用重写后的方法
我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快 捷方式。
但是,使用匿名内部类有一个前提,那就是匿名内部类必须继承一个父类或者实现一个父接口。
今天上午复习了关于多线程的使用,其中在测试类中就有匿名内部类的使用。多线程使用匿名内部类的具体代码如下:
package com.itheima01;

public class test01 {
    public static void main(String[] args) throws InterruptedException {
        new Thread( new Runnable() {
            @Override
            public void run() {
                while(true) {
                        try {
                            Thread.sleep(500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println(Thread.currentThread().getName() + ": 播放背景音乐。");
                }
            }
        },"线程一").start();
     new Thread(new Runnable() {
         @Override
         public void run() {
             while(true) {
                     try {
                         Thread.sleep(500);
                     } catch (InterruptedException e) {
                         e.printStackTrace();
                     }
                     System.out.println(Thread.currentThread().getName() + ": 显示画面。");

             }
         }
     },"线程二");

    }
}
使用匿名内部类的优缺点:多线程使用匿名内部类不用再创建类,可以直接在测试类中创建匿名内部类,省去了我们重新创建实现类的步骤。匿名内部类就是没有名字的内部类。这是Java为了方便我们编写程序而设计的一个机制。因为有时候有的内部类只需要创建一个它的对象就可以了,以后再不会用到这个类,这时候使用匿名内部类就比较合适,而且也免去了给它取名字的烦恼。同样它的缺点就是不能多次使用,因为你没有给它命名。如果想要多次使用就不建议使用匿名内部类了。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马