内部类分类

内部类和外部类会生成2个class文件,其中内部类是  Outer$Inner.class形式

成员内部类

内部类可以声明static final的变量,但不可以声明static变量

可以用new Outer.new Inner方式创建对象,必须得先new外部类,再通过外部类new内部类,内部类的对象归属外部类对象

 

静态内部类

只有内部类可以用静态方法修饰,外部类用static会报错

静态内部类与非静态内部类之间的比较:

比如在外围类 Outer 中分别定义了一个私有、非静态属性 i,与一个私有、静态属性 j。那么静态内部类 Inner 只能访问 私有、静态属性 j

想在内部类访问外部类的非静态成员变量,要通过  new 外部类.成员变量   的方式

局部内部类

局部内部类:注意不能加任何访问修饰符。就跟局部变量不能加public/private等一样

内部类的有效范围只在这个方法内部,想要访问局部变量,必须是final的,否则报错

这是因为age是函数show的局部变量,在show结束后,age作为局部变量也会消失,但Inner的对象不会立刻被回收,如果此时引用了已经消失的age就有问题了。所以此时age应该是一个常量,在Inner内部引用的是一个常量,不会因show函数执行完而引用一个消失的对象

匿名内部类

先搞个接口

实际上就是创建了一个局部内部类,只是局部内部类的名字不是我们定义的,是系统定义的,这种跟下面的局部内部类伪代码没啥区别,但匿名内部类使用更多。下面的interface可以是接口,抽象类,父类等

等同于的伪代码

main function(){

Interface interface = new 局部内部类 implements Interface{

@Override

service(){  do something  }

}

interface.service();

}

匿名内部类会生成一个  MyInterface$1.class 的文件,所以名字不是我们定义的,但会有

参考文章:

12.06 局部内部类_哔哩哔哩_bilibili

sheng的学习笔记-内部类相关推荐

  1. sheng的学习笔记-平衡二叉树(AVL)和3+4重构

    二叉树细节可参考: sheng的学习笔记-二叉树(BST)_coldstarry的博客-CSDN博客 定义 平衡二叉树,又称AVL树,用于解决二叉排序树高度不确定的情况,如果二叉排序树的子树间的高度相 ...

  2. sheng的学习笔记-Vector源码分析

    概述 Vector底层也是数组,跟ArrayList很像(先看下ArrayList,再看Vector会很轻松),ArrayList可参考下文,并且由于效率低,已经被淘汰了,大概瞅瞅得了 sheng的学 ...

  3. sheng的学习笔记-kafka框架原理

    目录 环境搭建 下载安装包 修改配置文件 启动服务 创建topic 生产消息 消费消息 代码 maven配置 kafka的生产者代码 消费者代码 基础知识 主题TOPIC: 单播和多播 单播消息: 多 ...

  4. sheng的学习笔记-redis框架原理

    摘要:redis命令,使用场景,持久化,缓存穿透,缓存雪崩,缓存击穿,持久化(RDB,AOF),事务,锁,集群,主从复制原理,哨兵模式 目录 基础知识 简介: 安装: Windows 下安装 Linu ...

  5. 《java编程思想》学习笔记——内部类五

    2019独角兽企业重金招聘Python工程师标准>>> 10.5 在方法和作用域内的内部类 1.可以在一个方法里面或者任意的作用域内定义内部类.这么做有两个理由: (1)实现某类型的 ...

  6. sheng的学习笔记-activeMQ框架原理

    目录 搭建环境 如果需要修改访问端口的话 如果需要修改用户名和密码的话 重启 ActiveMQ 配置文件 activemq.xml 基础理论: 什么是 JMS JMS基本开发步骤: 点对点模型(Poi ...

  7. sheng的学习笔记-ConcurrentHashMap(JDK1.7和16)源码分析

    1.7版本 概述 注意,以下代码都是1.7版本(不同版本代码不一样),最下面有1.8版本部分内容 ConcurrentHashMap是线程安全的key value存储结构,底层也是数组+链表的结构 下 ...

  8. sheng的学习笔记-设计模式-代理模式

    原理图: 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问.这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介. 至少在以下集中情况下可以用 ...

  9. sheng的学习笔记-设计模式-单例模式

    转载文章:​​​​​​Java单例模式的5种实现方法_明朗晨光的专栏-CSDN博客_单例模式java​​​​​​ 饿汉 类加载的时候就创建了实例 优点:类加载的时候创建一次实例,避免了多线程同步问题 ...

最新文章

  1. 经验分享:CSS浮动(float,clear)通俗讲解
  2. stream的filter用法
  3. 转 Python爬虫入门二之爬虫基础了解
  4. 子网划分详解与子网划分实例
  5. maven+svn+hudson+weblogic构建持续集成环境
  6. 荣耀9X Pro外观设计图曝光:升降前置摄像头/保留3.5mm耳机孔
  7. 那年学过的Java笔记三核心类库三
  8. 【effective c++笔记】条款01 :视c++为一个语言联邦
  9. 图解FCKeditor在asp.net环境的安装(上)
  10. Codeforces Round #358 (Div. 2) Alyona and Strings
  11. 调查问卷或量表数据的一般处理与SPSS统计分析
  12. c语言间接寻址运算符,间接寻址运算符:*
  13. 山东淀粉行业面临洗牌,深加工技术资金为王
  14. AWS -DMS -实例内存降低
  15. 【已解决】python 使用xlrd,xlwt 修改execl单元格的背景色
  16. 2021年中国农民工总量、外出农民工规模及农民工平均年龄分析[图]
  17. STM32实现DAC功能输出音频波形
  18. 【校招Verilog快速入门】基础语法篇:VL1、四选一多路器
  19. 如何用C++开发STM32?
  20. Windows下Tesseract4.0识别与中文手写字体训练

热门文章

  1. 用户贷款风险预测之Top10初体验
  2. 讯飞webapi语音合成多音字处理
  3. QQ空间首页模仿制作——HTML布局练习
  4. c 语言解析png图片文件信息,使用CImage加载PNG图片文件
  5. excel高级筛选怎么用_Excel高级筛选的5个用法,学会了可以少写很多函数公式
  6. 解决低版本ios使用html2canvas截图空白问题
  7. 科大讯飞麦克风阵列回声消除须知 V1.0
  8. linux启动优化 内核裁剪详细说明(2)
  9. MySQL数据库软件安装
  10. 水果分割论文、代码和数据集汇总