手撕JAVA(1)内部类

简介: 1.定义内部类,即将一个类定义在另一个类内部。2.规定2.1权限修饰符外部类只能使用public、default修饰,内部类可以使用private、public、protect、default,(即全部修饰符)修饰。

1.定义

内部类,即将一个类定义在另一个类内部。

2.规定

2.1权限修饰符

外部类只能使用public、default修饰,

内部类可以使用private、public、protect、default,(即全部修饰符)修饰。

20210417145813972.png

2.2成员

内部类不能与外部类重名,

不能在内部类中定义static属性、方法和类,但可以定义static final的常量类型。

20210417150152842.png

2.3访问调用

内部类可以直接访问外部类的属性和方法,包括private修饰的

20210417150808646.png

外部类访问内部类的属性和方法必须先创建内部类实例

如果内外有同名,内调外,加上类名.this.方法或者属性名来调用

3.实例化

内部类是外部类的一个成员。

在成员内部类中访问外部类的成员方法和属性:外部类名.this.成员方法(或者属性)

在内部类之外创建成员内部类的实例:外部实例对象名.内部类名  实例名 = new  内部类构造方法

20210417151949754.png

4.静态、匿名

4.1静态内部类

静态内部类,即用static修饰的内部类。

静态内部类的使用方法和静态方法的使用方法相同,即静态内部类只能调用外部类的静态属性和方法。

对静态内部类的调用可以视为对一个静态方法的调用。

20210417152724716.png

4.2匿名内部类

匿名内部类,即没有名称的内部类。

形式上是直接new接口或者抽象类,实际上是产生一个匿名的实现类。

new匿名内部类的前提是必须继承一个父类或者实现一个接口,

匿名内部类中不能使用static修饰符,

匿名内部类就是一个普通的实现类,里面方法属性不限量。可重载可自定义等等。

20210417153415986.png

当匿名内部类想要调用自己扩展的方法时候注意:

因为此时对象是父类型,并没有用子类去实现父类,所以调用不到自己特有的方法,又因为这里没有实现类供调用来强转,

所以匿名内部类要是想调用自己扩写的方法,只能在创建的时候一并进行调用。

20210417153822524.png

目录
相关文章
|
1月前
|
Java 编译器
【Java】内部类
【Java】内部类
22 0
|
3月前
|
Java
【Java基础面试二】、个Java文件里可以有多个类吗(不含内部类)?
这篇文章讨论了Java文件中类的定义规则,指出一个Java文件可以包含多个类(不包含内部类),但其中最多只能有一个public类,且如果有public类,它的名称必须与文件名一致。
|
3月前
|
算法 Java
12 Java常用类(一)(内部类+object类+包装类)
12 Java常用类(一)(内部类+object类+包装类)
37 5
|
4月前
|
Java
Java进阶之内部类
【7月更文挑战第13天】Java内部类增进代码组织与封装,允许直接访问外部类成员,包括私有成员。主要有四种类型:成员、静态、局部和匿名内部类。匿名内部类常用于一次性实现接口或扩展类。内部类可隐藏实现细节,减少命名冲突,并在特定上下文中定义辅助类。示例展示了静态和非静态内部类如何在Shape类中封装Circle和Rectangle。使用内部类能提升代码可读性,但可能增加复杂性。
37 6
|
3月前
|
Java
【Java】内部类、枚举、泛型
【Java】内部类、枚举、泛型
|
5月前
|
Java
一篇文章讲明白Java中内部类详解—匿名内部类
一篇文章讲明白Java中内部类详解—匿名内部类
95 2
|
5月前
|
设计模式 Java 编译器
Java中的内部类(如果想知道Java中有关内部类的知识点,那么只看这一篇就足够了!)
Java中的内部类(如果想知道Java中有关内部类的知识点,那么只看这一篇就足够了!)
|
5月前
|
Java 编译器
24. 【Java教程】内部类
24. 【Java教程】内部类
29 2
|
6月前
|
Java 程序员
Java的内部类与匿名类的技术性文章
Java的内部类与匿名类的技术性文章
44 1
|
6月前
|
Java
Java内部类(成员内部类、静态内部类、局部内部类、局部内部类)
Java内部类(成员内部类、静态内部类、局部内部类、局部内部类)
47 3
下一篇
无影云桌面