Java内部类

1 内部类概念,定义格式,特点

1.1 内部类概念

内部类:就是在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类

1.2 内部类定义格式

public class 类名{ 修饰符 class 类名{ }}

范例:

public class Outer { public class Inner { } }

1.3 内部类的访问特点

1.内部类可以直接访问外部类的成员,包括私有

2.外部类要访问内部类的成员,必须创建对象

例:

2 内部类分类

内部类位置:

1.成员内部类:在类里面的成员位置

延伸:静态内部类,用static修饰的成员内部类

2.局部内部类: 在方法里面

延伸:匿名内部类,定义在方法内部用来实现接口或者类名的

2.1 成员内部类

格式:外部类.内部类 对象名 = new 外部类对象().new 内部类对象();

范例:Outer.Inner oi = new Outer().new Inner();

2.2 静态内部类

有static

修饰的成员内部类格式:

静态内部类创建对象的格式:

格式: 外部类名.内部类名 对象名 = new 外部类构造器.new 内部类构造器();

拓展:

1、静态内部类中是否可以直接访问外部类的静态成员?

可以,外部类的静态成员只有一份可以被共享访问。

2、静态内部类中是否可以直接访问外部类的实例成员?

不可以的,外部类的实例成员必须用外部类对象访问。

注意:静态内部类开发中实际上用的还是比较少。

2.3 局部内部类

局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并使用

该类可以直接访问外部类的成员,也可以访问方法内的局部变量

局部内部类:放在方法、代码块、构造器等执行体中

2.4 匿名内部类

概述:匿名内部类本质上是一个特殊的局部内部类(定义在方法内部)

前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类

格式:

匿名内部类的特点:

匿名内部类是一个没有名字的内部类。

匿名内部类写出来就会产生一个匿名内部类的对象。

匿名内部类的对象类型相当于是当前new的那个的类型的子类类型。

相关推荐
凯尔萨厮2 小时前
Java学习笔记十五(GUI)
java·笔记·学习
磐链科技2 小时前
区块链开发入门实战:用 Hardhat 与 Ethers.js 搭建你的第一个 DApp
开发语言·javascript·区块链
落木萧萧8252 小时前
MyBatis 关联查询的四种写法,为什么最后都变回了手写 XML
java·数据库·后端
csdn2015_2 小时前
java springboot项目,接收到的参数多个逗号
java·开发语言·spring boot
cui_hao_nan2 小时前
Spring AOP 自调用、代理与 private 方法引发的诡异 NPE
java·后端·spring·ai开发
码艺-Alimjan2 小时前
维吾尔语数字转文本
java·javascript·python·算法·go
可乐鸡翅yeah_2 小时前
hls.js 多实例并发踩坑,多视频页面播放器内存与冲突问题解决
开发语言·前端·javascript·音视频·hls·m3u8·m3u8在线播放
俊昭喜喜里2 小时前
c#中的构造函数
开发语言·数据库·c#
事圆则缓2 小时前
Java 常见数据结构与 Android 使用场景
android·java·数据结构
hahaha60163 小时前
HLS高层次综合设计--axi之burst纠偏
开发语言·算法·fpga开发·c#