java内部类学习,匿名内部类的调用。

一、什么是内部类

顾名思义,内部类就是将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类。

二、什么时候用内部类

如果一个事物里包含着其他事物,其他事物,可以创建一个内部类。

三、内部类的划分

内部类分为成员内部类和局部内部类。内部类也会生成.class文件。

java内部类学习,匿名内部类的调用。_第1张图片

1、成员内部类

定义在外部类中的成员位置,与类中的成员变量相似,可通过外部类对象进行访问。

java内部类学习,匿名内部类的调用。_第2张图片

内部类可以使用外部类的成员,包括私有成员。但是外部类要使用内部类的成员,必须建立内部类变量。

2、局部内部类

定义:在方法里面有一个内部类。

java内部类学习,匿名内部类的调用。_第3张图片

只有在内部类所属的方法中创建内部类对象,方可访问局部内部类。而测试类中只需要创建外部类对象,然后调用外部类方法即可。

四、匿名内部类

最常用到的内部类是匿名内部类。

1、定义的匿名内部类有两个含义 

定义子类,实现接口,创建子类对象一步完成。

java内部类学习,匿名内部类的调用。_第4张图片

注意最后要加分号。表示一个子类对象的建立。匿名内部类创建在方法中。必须与父类有继承关系。

编译会生成一个没有名的.class文件。

2、调用内部类的方法

第一种:要想调匿名类的方法,只需要在类结束处加上   .方法名即可。如图:

java内部类学习,匿名内部类的调用。_第5张图片

第二种:也可以引用父类变量接收:

java内部类学习,匿名内部类的调用。_第6张图片

注意:匿名内部类只能写在方法中。

内部类从new开始到分号结束,就是子类的对象。用多态的方式赋值给父类的引用变量,根据多态定义,运行成员方法,编译看父类是否有此方法,有,编译成功。没有编译失败。运行是非静态方法,运行子类方法。即内部类的方法。

你可能感兴趣的:(java基础笔记)