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

相关推荐
AI科技星1 小时前
数术工坊・八卷全书(番外・实战升华副卷)【终极典藏定稿|完整无删减】
c语言·开发语言·网络·量子计算·agi
丘山望岳1 小时前
剑起霜华——平衡二叉树(AVL树 )精讲
开发语言·数据结构·c++
西安邮电大学1 小时前
有关数组的经典算法题
java·后端·其他·算法·面试
yyuuuzz1 小时前
云服务器软件部署的几个常见问题
运维·服务器·开发语言·网络·云计算·php·apache
z落落1 小时前
Timer与DateTimePicker:控件使用全解析
开发语言·c#
互联网推荐官1 小时前
上海AI Agent智能体开发公司技术选型实录:六条路径、三类架构与真实落地约束
java·人工智能·ai·架构·开发经验·上海
mikasa6672 小时前
关于Spring MVC 基于 AOP 实现的全局控制器统一处理方案@ControllerAdvice
java·spring·mvc
一 乐2 小时前
幼儿园管理系统|基于springboot + vue幼儿园管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·幼儿园管理系统
Boom_Shu2 小时前
浅拷贝与深拷贝
开发语言·c++·算法