1、什么是内部类?
内部类:在类的内部又定义了一个新的类。被称为内部类。

2、内部类的分类:

  • 静态内部类:类似于静态变量
  • 实例内部类:类似于实例变量
  • 局部内部类:类似于局部变量

3、使用内部类编写的代码,可读性很差。能不用尽量不用。

4、匿名内部类是局部内部类的一种。
因为这个类没有名字而得名,叫做匿名内部类。

5、学习匿名内部类主要是让大家以后在阅读别人代码的时候,能够理解。
并不代表以后都要这样写。因为匿名内部类有两个缺点:
缺点1:太复杂,太乱,可读性差。
缺点2:类没有名字,以后想重复使用,不能用。

示例代码:

public class InnerTest01{// 该类在类的内部,所以称为内部类// 由于前面有static,所以称为“静态内部类”static class Inner01{}// 该类在类的内部,所以称为内部类// 没有static叫做实例内部类。class Inner02{}// 方法public void doSome(){// 该类在类的内部,所以称为内部类// 局部内部类。class Inner03{} }public void doOther(){// doSome()方法中的局部内部类Inner3,在doOther()中不能用。}
}

测试类:

public class InnerTest02{public static void main(String[] args){MyMath m = new MyMath();//m.mySum(new ComputerImpl(),100,200);// 使用匿名内部类,表示这个ComputeImpl这个类没名字了。// 这里表面看上去好像是接口可以直接new了,实际上并不是接口可以new了。// 后面的{} 代表了对接口的实现。// 不建议使用匿名内部类,为什么?// 因为一个类没有名字,没有办法重复使用。另外代码太乱,可读性太差。m.mySum(new Computer(){public int sum(int a,int b){return a + b;}},300,500);}
}//计算接口
interface Computer{// 抽象方法int sum(int a,int b);
}// 你自动会在这里编写一个Compute接口的实现类
//接口实现
/* class ComputerImpl implements Computer{public int sum(int a,int b){return a + b;}
} */// 数学类
class MyMath{// 数学求和方法public void mySum(Computer c,int x,int y){int reValue = c.sum(x,y);System.out.println(x + "+" + y + "=" + reValue);}
}

运行结果:

Java基础匿名内部类相关推荐

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

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

  2. Java基础——匿名内部类

    文章目录 1.匿名内部类 2.为什么要使用匿名内部类 3.如何使用匿名内部类 1.匿名内部类 匿名内部类,就是没有名字的一种嵌套类.它是Java对类的定义方式之一. 2.为什么要使用匿名内部类 在实际 ...

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

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

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

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

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

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

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

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

  7. java基础学习整理(一)

    java基础学习整理(一) lesson1: D0s命令: 1.回到根目录,>cd \ 2.复制命令行下的内容,右击标记所要复制的内容,这样就已经复制好了,右击粘贴就可以了. 3.查看,设置环境 ...

  8. 【转】Java基础知识整理

    本博文内容参考相关博客以及<Java编程思想>整理而成,如有侵权,请联系博主. 转载请注明出处:http://www.cnblogs.com/BYRans/ PDF版下载链接:<Ja ...

  9. Java基础day23

    Java基础day23 Java基础day23-函数接口&stream流 1.函数式接口 1.1函数式接口概述 1.2函数式接口作为方法的参数 1.3函数式接口作为方法的返回值 1.4常用函数 ...

最新文章

  1. 打开git命令窗口_用动图的形式打开 10 大 Git 命令?
  2. 图片上传之FileAPI与NodeJs
  3. Move_base理解
  4. # 根据三边求角度_小升初数学必学的10种图形求面积法,你家娃都会了吗?
  5. linux中的特殊文件权限
  6. 485. 最大连续1的个数
  7. CS224N笔记——词向量表示
  8. crmjs区分窗口是否是高速编辑(2)
  9. [转]ETL模型设计
  10. docker部署springboot父子级项目+mysql+redis菜鸟教程
  11. PCB设计的工艺流程
  12. BeetlSql中的Mapper
  13. iis 缓存 静态文件_强制更新IIS中的缓存JavaScript文件
  14. appbase_构建一个Chrome扩展程序,以使用Appbase进行实时价格跟踪
  15. 大家好,我是浪啦啦啦啦啦!
  16. 关于如何在空间中建立直角坐标系
  17. 弘辽科技:拼多多这样提升销量才能加权
  18. 《无法打开包括文件:“Eigen\Dense”:No such file or directory》亲测有效的解决方法
  19. oracle中 || 代表的含义
  20. 2023年全国最新会计专业技术资格精选真题及答案11

热门文章

  1. 中国品牌日话品牌:智能家居企业如何打造新消费品牌?
  2. 人均年薪50万以上,docker到底是什么?为什么这么火?
  3. 手机微信如何合并健康码行程码
  4. Linux 安装scrcpy实现手机投屏(deepin/xubuntu)
  5. 从零开发H5可视化搭建项目
  6. snabbdom源码粗读
  7. IDL批量处理---MOD04_L2
  8. Docker全面详解(二)
  9. Codeforces 939C - Convenient For Everybody
  10. HTML5七夕情人节表白网页(情人节满屏爱心HTML5特效) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 抖音3D旋转相册 js烟花代码