zoukankan      html  css  js  c++  java
  • Java中的匿名内部类

    匿名内部类,是在方法体内,因为是匿名的,故只能使用一次。前提条件:必须继承一个父类或实现一个接口。

    简化代码。

    匿名内部类: 是一种特殊的语法,

      *   用来快速创建抽象类的子类对象
        *   用来快速创建 接口的实现类对象

    语法:
    new 抽象父类([参数]) 或 接口()
    {
    ....
    }

    • 一般的代码(未使用匿名内部类)
    interface IUsb
    {
        abstract public void swapData();
    }
    class Keyboard implements IUsb
    {
        public void swapData()
        {
            System.out.println("键盘的数据交换。。");
        }
    }
    class Mouse implements IUsb
    {
        public void swapData()
        {
            System.out.println("鼠标的数据交换。。");
        }
    }
    class Motherboard
    {
        public void pluginIn(IUsb usb)
        {
            usb.swapData();
        }
    }
    
    public class helloworld
    {
        public static void main(String[] args)
        {
            Motherboard m = new Motherboard();
            m.pluginIn(new Keyboard());
            m.pluginIn(new Mouse());
        }
    }

    生成的字节码文件:

    •  使用匿名内部类后
    interface IUsb
    {
        abstract public void swapData();
    }
    //***删除了class Keyboard 和 Mouse
    class Motherboard
    {
        public void pluginIn(IUsb usb)
        {
            usb.swapData();
        }
    }
    
    public class helloworld
    {
        public static void main(String[] args)
        {
            Motherboard m = new Motherboard();
            m.pluginIn(new IUsb()
                {
                    public void swapData()
                    {
                        System.out.println("键盘数据交换。。");
                    }
                });
            m.pluginIn(new IUsb()
                {
                    public void swapData()
                    {
                        System.out.println("鼠标数据交换。。");
                    }
                });
        }
    }

    生成的字节码文件:

    常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。

    昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
  • 相关阅读:
    MAC LAMP环境 php执行使用问题
    centos 服务器 安全设置
    Linux系统发现占用CPU达100%的进程并处理
    git 使用国内镜像 ,查看镜像更改情况
    mac安装composer
    MySql反向模糊查询
    Linux启动或重启网卡
    MAMP环境 nginx配置忽略index.php入口文件
    php 验证码生成 不保存的情况下 缩小图片质量
    KMP字符串模式匹配详解
  • 原文地址:https://www.cnblogs.com/htj10/p/12360428.html
Copyright © 2011-2022 走看看