JavaSE的相关概念(14)——内部类

发布时间:2023年12月26日

一、概念

把类定义在另一个类的内部,该类就被称为内部类。而这个类的外部的类则被称为外部类(或称为宿主类)。

二、定义

class Outer{

? ? ?private int age = 20;

? ? ?class Inner{

? ? ? ? ? public void show(){

? ? ? ? ? ? ? ?System.out.print(age);

? ? ? ? ? }

? ? ?}

}

特点:可以使用外部类中所有的成员变量和成员方法(包括private的)

三、注意点

1.内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号;

2.内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否为private的。

四、匿名内部类

一种特殊的局部内部类,它是通过匿名类实现的接口。

语法:

new 接口名称/抽象类名称(){

? ? ?//重写抽象方法

}

在实际开发中,一个接口/抽象类的方法的某个实现方法在程序中只会执行一次,但为了使用它,我们需要创建它的实现类 。此时,可以使用匿名内部类的方式,可以无需创建新的类,减少代码冗余。

例如:

public interface A{

? ? ?abstract void fun1();

}

new A(){

? ? ?public void fun1{

? ? ? ? ? System.out.println("匿名类实现!");

? ? ?}

}

补充:像之前学习的迭代器是ArrayList的一个内部类,EntrySet也是一个内部类。

五、意义

1.封装性:将只有在某个类中使用的功能定义在内部类中,并可以使用不同的访问权限修饰控制;

2.实在多继承操作。

文章来源:https://blog.csdn.net/2301_77523019/article/details/134903888
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。