一:内部类的意义
1.通过内部类,可以访问创建它的外部类的所有数据,包括私有数据(继承关系是无法访问到私有数据的)
2.内部类具有很好的封装性,不为同一包下的其他类所见
3.通过匿名内部类,可以很方便地定义一个回调
4.虽然类无法多继承,但是可以通过内部类再一次继承(从某种方面来说,实现了“多继承”)
二:内部类的种类
内部类有四种,分别是成员内部类,局部内部类,静态内部类以及匿名内部类
1.成员内部类:定义在类内部,成员位置上的非静态类
创建方式:外部类实例.new 内部类()
public class Out{
private int a = 0 ;
class In{
private int b = 0;
}
}
//创建
Out out = new Out();
In in = out.new In();
2.局部内部类:定义在方法内部
public class Out{
pulbic void test(){
class In{
private int a = 1;
}
In in = new In();
}
}
3.静态内部类:定义在类内部的静态类
public class Out{
static class In{
}
}
//创建
In in = new Out().In();
4.匿名内部类:定义在类内部,没有名字,只使用一次
创建方式:直接new 抽象父类或者接口
匿名内部类必须实现一个接口或者继承一个抽象类(当接口是函数接口时,可以直接使用lambda表达式)
最后:附上后端技术交流圈,欢迎各位大佬入圈交流技术......V:ff1341658(先添加好友后拉群,请备注:小白不黑)