引言:在内部类中,在平时基本不会用到,只有在库中的代码中遇到的多一些,平时使用多的就是匿名类,在后续会将匿名类补上,这里先了解什么是内部类和如何定义和使用。
目录
一.什么是内部类
在 Java 中,将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者称为外部类。
通俗的说就是在一个类中再定义一个类,内部类也能体现出封装的特性。
二.内部类的代码演示
public class OutClass{
public class InnerClass{
}
}
注意:
1.只有类在另一个类的内部才称为内部类。
2.内部类和外部类共同用一个Java源文件,但是在编译之后会生成各自的字节码文件。
三.内部类的分类
1.成员内部类
和外部类成员处于同一级别。
(1)普通内部类
1.1定义
1.2关于一些成员的访问和对象创建后的访问
成员的访问:
对象创建后的访问:
注意:
1.普通内部类所处位置与外部类成员位置相同,所以也受public,private等修饰符的限制。
2.外部类的所有成员都可以在内布类中进行访问。
3访问和和内部类同名成员的外部类成员使用 外部类名.this.同名成员 格式来进行访问
4.普通内布类必须在外部类对象的基础上才可以进行创建。
5.普通内部类中非静态方法中包含了一个指向外部类对象的引用,所以可以通过类名.this来进行访问外部类的成员。
6.外部类不能直接访问内部类的成员,如果访问,需要在外部类对象的基础上再构建外部类对象才可以访问。
(2)静态内部类
成员的访问:
对象创建后的访问:
注意:
1.静态内布类只能访问外部类的静态成员。
2.创建内部类不用创建外部类对象。
3.成员内部类经过编译后会生成独立的字节码文件,命名格式为:外部类名称$内部类名称。
2.局部内部类
定义在外部类的方法中或代码块中,使用的很少,了解即可。
(1)定义和使用格式
注意:
1. 局部内部类只能在所定义的方法体内部使用。
2. 不能被public、static等修饰符修饰。
3. 编译器也有自己独立的字节码文件,命名格式:外部类名字$x内部类名字.class,x是一个整数。
3.匿名内部类(后续补上)