关于内部类

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42376204/article/details/101309347

匿名内部类最为重要!

成员内部类

当定义一个内部类时:
文件夹里面会出现 外部类 内部类,这个 是一个关键字,说明这个类里面有一个成员内部类
在这里插入图片描述
//外部类是可以访问外部类的私有变量的
在这里插入图片描述

//使用成员内部类有两种方式
1.间接方式,即是在外部内中的方法调用内部类方法,而main方法只是调用外部类
在这里插入图片描述
//在main方法中调用外部类,但是因为外部类方法中已经调用了内部类方法,也就是间接访问了内部类的成员方法了
在这里插入图片描述

//2.直接方式:直接访问和调用内部类

公式:外部类名称.内部类名称 对象名 = new 外部类名称().new内部类名称();
在这里插入图片描述
具体举例:
//这种情况跟上面介绍的间接方法实现效果是一样的
在这里插入图片描述

内部类同名变量的访问:

外部类名称.this.外部类成员变量名
并且值得注意的是,内部类可以无条件的使用外部类的任何成员方法和成员属性(包括private成员和静态成员)。
在这里插入图片描述

//局部内部类的final问题
在这里插入图片描述

匿名内部类(非常重要!最最重要!)

匿名内部类应该是平时我们编写代码时用得最多的,在编写事件监听的代码时使用匿名内部类不但方便,而且使代码更加容易维护。

举个例子:在我们平时定义一个接口时,想用里面接口的方法需要定义一个类implements这个接口
在这里插入图片描述

//而我们使用匿名内部类
格式为:
接口名称 对象名 = new 接口名称(){
@override
//重写接口方法体
}这样就可以直接使用接口中的方法了。
//不一定是接口,还可以是abstract
在这里插入图片描述

匿名内部类使用事项

1.匿名内部类在创建对象时只可以使用一次;
如果希望多次创建对象,而且类的内容一样的话,那么就必须定义单独的实现类了

扫描二维码关注公众号,回复: 7575799 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_42376204/article/details/101309347