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的那个的类型的子类类型。

相关推荐
小羊没烦恼!4 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里4 天前
java中的继承和多态的区别
java
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕4 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖4 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时4 天前
01-06-A-JVM排查实战详解
java·jvm
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
vipxieliang4 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
C语言小火车4 天前
C/C++ 为什么需要编译器?
开发语言·c++