内部类:
  概述: 类里边还有一个类, 里边那个类叫内部类, 外边那个类叫外部类.
 

分类:
  成员内部类: 定义在成员位置的内部类.
  局部内部类: 定义在局部位置的内部类.

格式:
  new 类名或者接口名(){
    //重写类或者接口中 所有的 抽象方法;
  };

本质:
  就是一个继承了类或者实现了接口的 匿名的子类对象. 匿名内部类不是类, 而是子类对象.

匿名内部类的实际应用:
  1) 当对 对象方法(成员方法) 仅调用一次的时候.
  2) 可以作为方法的实参进行传递.

建议:
  当接口中或者抽象类中的 抽象方法仅有一个的时候, 就可以 考虑使用匿名内部类.

代码说明:

public class DemoClass { //外部类
    String name;    //成员变量class Inner1 {    //成员内部类
        }//成员方法public void show() {int num = 10;    //局部变量, 基本类型
        Object obj = new Object();    //局部变量, 引用类型//局部内部类.   局部变量, 引用类型class Inner2{}}
}

应用举例:

public static void main(String[] args) {                   // 对, Jumpping#jump(); 调三次.                            //1) 当对 对象方法(成员方法) 仅调用一次的时候.                           Jumping jm = new Jumping() {        //多态                                                            @Override                                          public void jump() {                               System.out.println("我会跳");                     }                                                                                               };                                                     jm.jump();                                             jm.jump();                                             jm.jump();                                             //2) 可以作为方法的实参进行传递.                                    show(new Jumping() {                                   @Override                                          public void jump() {                               System.out.println("我会跳, 可以作为方法的实参进行传递");      }                                                  });
}                                                          public static void show(Jumping jm) {                      jm.jump();
}                                                          public interface Jumping {final public static int num = 10;public abstract void jump();
}

public static void main(String[] args) {                  /*                                                    *  通过匿名内部类实现.                                    *  new 类名或者接口名(){                                    //重写类或者接口中 所有的 抽象方法;                          };                                                */                                                   new Animal() {                                        public void eat() {                               System.out.println("我是匿名内部类的方式实现的, 猫吃鱼");     }                                                 }.eat();
}                                                         /*** 抽象类: Animal* @author**/
public abstract class Animal {public abstract void eat();
}

转载于:https://www.cnblogs.com/blazeZzz/p/9153747.html

java基础之匿名内部类相关推荐

  1. Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解。

    Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解. 什么是匿名内部类? 顾名思义 匿名 就是没有名字,一个没有名字的内部类,称为匿名内部类. 下面先看一个例子,比如说你 ...

  2. JAVA基础16-Java匿名内部类

    文章目录 匿名内部类的特点 匿名内部类的特点 匿名内部类是没有名称的内部类,没办法引用他们.必须在创建时,作为new语句 的一部分来声明并创建他们的实例. 匿名内部类必须继承一个类(抽象的,非抽象的都 ...

  3. java 基础(匿名内部类)

    匿名内部类 特点:不对外公开,进行实现功能,继承类,继承抽象类,实现某个接口的匿名内部类,实现相应的方法 特别注意:匿名内部类,匿名指的是 ,new 关键字右边的那个对象--如继承,或是接口    { ...

  4. Java基础——匿名内部类详解及举例

    Java基础--匿名内部类详解及举例 说明:定义在外部类的局部位置,比如方法中,并且没有类名 匿名内部类的使用 匿名内部类的基本语法 new 类或接口(参数列表){类体 }; 用途:有些时候为了简化开 ...

  5. Java基础(内部类和匿名内部类的用法)

    Java内部类和匿名内部类的用法 一.内部类:       (1)内部类的同名方法         内部类可以调用外部类的方法,如果内部类有同名方法必须使用"OuterClass.this. ...

  6. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  7. Java类与匿名内部类

    大家好,这篇文章我们主要向大家介绍Java基础中的Object类.匿名内部类.构造方法的继承知识,一起来学习下吧! 一.Object类 Object类是所有类的父类,所有类都继承Object类. Ob ...

  8. 四、Android学习第四天——JAVA基础回顾(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天--JAVA基础回顾 这才学习Android的 ...

  9. (CZ深入浅出Java基础)线程笔记

    这是刘意老师的JAVA基础教程的笔记 讲的贼好,附上传送门 传智风清扬-超全面的Java基础 一.线程的引入 1.多线程概述 进程 a.正在运行的程序,是系统进行资源分类和调用的独立单位. b.每个进 ...

最新文章

  1. SpringBoot第十八篇: 定时任务(Scheduling Tasks)
  2. 威纶通触摸屏维修_威纶通WEINVIEW触摸屏维修故障检测
  3. mysql5.7 archive安装_对于Mysql 5.7.19 winx64 ZIP Archive的运用安装详细说明
  4. MySQL注射绕过技巧(三)
  5. 云原生消息、事件、流超融合平台——RocketMQ 5.0 初探
  6. Java 垃圾回收算法之G1
  7. 数据挖掘:围绕 统计与概率、分类与聚类、检索方法 ,原理演示或应用程序
  8. 无监督端到端检索式问答系统方案实践
  9. 矩池云上使用nvidia-smi命令教程
  10. three.js获取模型大小
  11. vfp 中调用硬盘_硬盘你真的选对了么?固态真的好用么?细数硬盘这些年出现的坑!...
  12. 基于Spring的医院药品管理系统的设计与实现
  13. 舞台音效控制软件_QLab Pro 4.3.2 优秀的舞台音乐控制软件
  14. 通过U盘刻录镜像安装windows系统
  15. Ajax技术体系的组成部分
  16. 亿网文交孟建州艺术品该怎么鉴别,代码分析
  17. Safari浏览器兼容性问题处理
  18. linux 怎么看出io是瓶颈,IO瓶颈探测方法
  19. Android NFC M1卡读写芯片卡读写(CPU卡读写)(RFID读写)
  20. Python数据处理实例

热门文章

  1. java三板斧_Java 枚举使用三板斧
  2. flutter 国际化_Flutter 开发实战资源推荐
  3. uni-app内置地图轨迹_MIUI11 新增亲情守护,支持安全围栏、运动轨迹功能
  4. css中的媒体查询_CSS中的媒体查询
  5. 三、“涤纶纤维和棉纤维两组分纤维在涤/棉混纺织物燃烧过程中有着明显的物理相互作用和化学相互作用”,解释这两种作用。
  6. php xml表格形式输出,PHP XML如何输出nice格式
  7. ps命令与top命令参数意义详解
  8. 计算机组装活动口号,广教育、多技能、求发展喜迎计算机系第五届电脑文化节...
  9. 四阶龙格库塔法的基本思想_数值常微分方程-欧拉法与龙格-库塔法
  10. 设计模式---3(工厂方法模式的概念,工厂方法模式的实现,工厂方法模式和简单工厂模式比较)