前言:
打好基础,daydayup!
内部类
内部类概述:
内部类是类的五大成分之一(成员变量,方法,构造器,内部类,代码块),如果一个类定义在另一个类的内部,这个类就是内部类
例:
public class A{
public class B{
}
}
内部类种类:
内部类总共有4种形式:1,成员内部类;2,静态内部类;3,局部内部类;4,匿名内部类
1,成员内部类
是类中的普通成员,类似学过的普通成员变量,成员方法。
例:
public class A{
public class B{
}
}
创建对象格式为:
外部类名.内部类名 对象名 = new 外部类().new 内部类();
例:
A.B a = new A().new B();
2,静态内部类
有static修饰的内部类,属于外部类自己持有
例:
public class A{
public static class B{
}
}
创建对象格式和创建成员内部类格式一样;和成员内部类区别在于:可以直接访问外部类的静态成员,不可以直接访问外部类的实例成员。
3,局部内部类
局部内部类定义在方法中,代码块中,构造器等执行体中
例:
public class A{
public void go(){
class B
}
}
局部内部类几乎没什么使用场景
4,匿名内部类
匿名内部类是一种特殊的局部内部类;匿名指的是程序员不需要为这个类声明名字。
表现格式:
new 类/接口(参数){
类的内容
}
匿名内部类本质是一个子类,并会立即创建一个子类对象;内部类最主要的作用为简化代码
如下图:
左边为一般情况,右边为使用了匿名内部类。通过匿名内部类可以省去一个子类的构造,简化了代码。
总结:
内部类可以极大的精简代码,但是简化的同时会导致代码拆分度下降,如果出现bug或分工时会导致挑错困难,要谨慎使用。
总结结束,撒花!