这是关于我对内部类理解的笔记,可能写的不怎么好,所以虚心接受大佬的指导
内部类(Nested Class)
- 定义在一个类中的另一个类被叫做内部类(Inner Class),
- 内部类有四种类型成员内部类、静态内部类、局部内部类、匿名内部类
- 成员内部类、局部内部类、匿名内部类中
成员内部类
// inner class
public class Main {
public static void main(String[] args) {
Outer outer = new Outer("Nested"); // 实例化一个Outer
Outer.Inner inner = outer.new Inner(); // 实例化一个Inner
inner.hello();
}
}
class Outer {
private String name;
Outer(String name) {
this.name = name;
}
class Inner {
void hello() {
System.out.println("Hello, " + Outer.this.name);
}
}
}
- 直接定义在类里面的是成员内部类,定义在类中,作用域也在类中,可以直接访问外部类的所有成员,包括私有的,
静态内部类
- 如果用
static
修饰的就是静态内部类。只能访问外部类的静态成员包括私有的
局部内部类
- 局部内部类定义在外部类的方法体或代码块中,作用域在这个代码块或方法体中。成员内部类可以直接访问外部类的所有成员包括私有的。只可以使用
final
修饰
匿名内部类
- 该类没有类名的话就是匿名内部类,定义在外部类的方法或代码块中,匿名内部类相当于创建了一个接口或类的对象,在对象中直接重写方法,如果这个匿名内部类声明了具体的对象名的,则可以复用这个对象,但是这个匿名内部类只能使用一次
来源链接:https://www.cnblogs.com/lenmonman/p/18652330
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容