java java面向对象-匿名内部类分析

原创 2018年04月17日 09:09:14

20180410 java java面向对象-匿名内部类分析



匿名内部类的定义:就是没有名称的局部内部类,适用于只使用一次的类。


在开发中经常有这样的类,只需要定义一次,使用一次,就可以丢弃了。此时就不应该把这种类定义在文件中。再javaSE的事件中 或在安卓的事件处理中 这种类用的较多。
eg:不同的按钮 点击之后会有不同的响应操作,事件响应的代码 就不需要放在文件中定义。这样 就首选 匿名内部类。


匿名内部类:用的时候就定义它,用完就不要了。




匿名内部类特点:


特点1:匿名内部类本身没有构造器,但是会调用父类的构造器。




特点2:匿名内部类尽管没有构造器,但是可以在匿名内部类中提供一段实例初始化代码块,java虚拟机(JVM)在调用父类构造器后,会执行该代码块。
语法格式:
new 父类构造器(实参列表) 或 接口()
{
  //匿名内部类的类体部分
}






eg:


//指定USB规范
interface IUSB
{
  void swapData();
}


//USB版本鼠标
class Mouse implements IUSB
{
  public void swapData()
  {
    System.out.println("鼠标...");
  }
}


//主板(鼠标需要插到主板上工作)
class MotherBoard
{
  private static IUSB[] usbs = new IUSB[6];
  private static int index = 0;//表示插入到第几个位置


  //把设备插入到主板中的功能,接受IUSB类型的对象
  public static void pluginIn(IUSB usb)
  {
    if(index == usbs.length)
    {
      System.out.println("USB插槽已经满了");
    }


    usbs[index] = usb;
    index++;
  }


  //取出主板中的每一个USB设备,并工作
  public static void doWork()
  {
    for(IUSB usb:usbs)
    {
      if(usb != null)
      {
        usb.swapData();
      }
    }
  }
}


//实例:使用USB设备来工作
class USBDemo
{
  public static void main()
  {
    //创建鼠标对象
    MotherBoard.pluginIn(new Mouse());
    //安装打印机
    MotherBoard.pluginIn(new Print());


    //安装USB键盘(只安装一次)
    //创建一个IUSB的匿名实现类对象
    MotherBoard.pluginIn(new IUSB()
      {
        //匿名内部实体
        public void swapData()
        {
          System.out.println(键盘...);
        }
      }
    );
    


    MotherBoard.doWork();
  } 
}




特点3:
//创建一个






JAVA面向对象与内存分析

从代码加载,及内存分析
  • lidaasky
  • lidaasky
  • 2014-06-06 11:47:57
  • 2043

Java中的匿名内部类及其使用技巧

前言在介绍匿名内部类之前,首先我们应该先来了解一下内部类及局部内部类: 内部类 内部类(inner class)是定义在另一个类中的类,内部类中的方法可以访问创建该内部类的类(我们称其为外围类 ...
  • tick_tock97
  • tick_tock97
  • 2017-08-08 21:59:24
  • 893

【java】匿名内部类实例

1.匿名内部类顾名思义就是没有名字的内部类。 2.因为没有名字,所以匿名内部类只可以使用一次。 3.匿名内部类常用来简化代码的编写。 4.使用内部类有一个前提条件,必须继承父类或实现一个接口。 ...
  • NeoAdrian
  • NeoAdrian
  • 2016-04-11 21:53:53
  • 2833

Java内部类和匿名内部类的区别

很多初学者在对于内部类和匿名内部类的理解上给混淆了,其实是一个很容易理解的概念 1.什么是类,类可以理解为一个对象。(那么各位友友们思考,我们为什么需要一个对象?因为我们需要这个对象...
  • ldz1997106
  • ldz1997106
  • 2017-01-18 00:10:23
  • 974

【Java语法】匿名内部类

一、内部类 1. 内部类就是在某个类的内部又定义了一个类,被内部类嵌入的类称为外部类。 2. 内部类分为静态内部类、成员内部类、局部内部类、匿名内部类。 3. Vs 类的组合、C++友元类。   二、...
  • qq_32507527
  • qq_32507527
  • 2017-02-28 12:22:24
  • 387

Java内部类和匿名内部类的用法

Java内部类和匿名内部类的用法    【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/51981163一、内部类:    ...
  • guyuealian
  • guyuealian
  • 2016-07-21 15:46:41
  • 7253

java匿名内部类详解

【声明】此文转载自:http://blog.csdn.net/zhandoushi1982/article/details/8778487 ——感谢分享,尊重作者,交流无限! ...
  • huntersnail
  • huntersnail
  • 2015-09-14 11:41:56
  • 3963

java 匿名内部类的使用规范

  • 2010年06月21日 15:01
  • 59KB
  • 下载

Java匿名内部类的两种经典用法

匿名内部类是在单一表达式内定义的嵌套类。因为这些类没有名称和构造函数,所以称为匿名类。它们只能访问最终方法变量和参数。 class Inner { public static void mai...
  • blueln
  • blueln
  • 2011-11-19 21:41:57
  • 5151

java中匿名内部类的理解

java中匿名内部类的理解昨天晚上看json解析方式时突然看到关于匿名内部类,自己想了下发现竟然从来没有认真考虑过匿名内部类为什么叫这个,然后去网上查了下好像也没看出什么头绪来,早上上班看到一篇文章一...
  • u011983779
  • u011983779
  • 2016-11-22 23:22:32
  • 917
收藏助手
不良信息举报
您举报文章:java java面向对象-匿名内部类分析
举报原因:
原因补充:

(最多只允许输入30个字)