内部类(累不累?)
定义:定义在一个类体当中的类,被称作内部类。
为什么要使用内部类?
内部类是java中共享数据最简单的方式之一。
内部类的分类(根据可以共享到哪些数据分类):
成员内部类:
能够共享到外部类所有【静态+非静态】成员【属性+方法】。
Outer.Inner inner=new Outer().new Inner();
静态内部类:
能够共享到外部类静态的成员【属性+方法】
Outer.Inner inner=new Outer.Inner();
局部内部类:
如果存在于静态方法当中:
只能共享外部类的静态成员【属性+方法】
+所有在外部类方法中的局部变量(jdk8.0之前需要加final)
如果存在与非静态方法当中:
能共享外部类的所有【静态+非静态】成员【属性+方法】
+所有在外部类方法中的局部变量(jdk8.0之前需要加final)
Inner inner=new Inner();
*:注意有位置限定:定义完成之后 所有方法结束之前 才能使用
匿名内部类(也是类)
匿名内部类根据定义位置不同,很可能等价于上述三种的任意一种
new 父类/接口{
类体当中完成抽象方法的具体实现。
}
java当中如何实现共享数据
1.使用静态变量
2.参数传递
3.使用内部类