java内部类分为两种,静态内部类和非静态内部类。根据使用位置和方式的不同,非静态内部类
可分为:一般内部类、局部内部类(方法区内部类)、匿名内部类。
非静态内部类
类似于外部类的成员变量或者成员方法(实例变量、实例方法)。
一般内部类
1) 内部类可以访问外部类私有的成员变量
1 | public class OuterClass{ |
2) 使用内部类必须先实例化外部类
3) 声明内部类时,可加public、protected、private或者默认修饰符,规则同类修饰符一样
1 | public class OuterClass{ |
局部内部类
1) 写在方法内部的类是局部内部类
2) 局部内部类不能用public、protected、private等修饰
3) 局部内部类只能在方法内部使用
1 | public class OuterClass{ |
匿名内部类
1) 没有名字的类称为内部类
2) 一般用于重写某个类的方法或者实现某个接口
3) 如果一个方法接收一个接口、抽象类或者具体类,一般传递匿名内部类
1 | public class OuterClass{ |
静态内部类
1) 静态内部类是外部类的静态成员
2) 实例化静态内部类不需要先实例化外部类
3) 静态内部类不能访问外部类的实例变量和方法
4) 声明静态内部类时,可加public、protected、private或者默认修饰符,规则同类修饰符一样
1 | public class OuterClass{ |