JavaSE的相关概念(14)——内部类
2023-12-24 16:56:14
一、概念
把类定义在另一个类的内部,该类就被称为内部类。而这个类的外部的类则被称为外部类(或称为宿主类)。
二、定义
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!