嵌套类 ~ 内部类之三
2022-01-30 本文已影响0人
喏喏2021
1.概念
有时,我们不一定需要内部类与外部类之间有联系,这时我们可以将内部类声明为static,也称为嵌套类。而对于一般的内部类对象会隐式地保存了一个引用,而它指向它的外部类对象,而对于嵌套类有如下特点:
1)创建嵌套类的对象时,并不需要先创建外部类的对象
2)不可以从嵌套类里访问非静态的外部类对象
2. 使用场景
1)嵌套类的内部,可以包括static数据和static字段,而一般的内部类是不可以包括的
2)嵌套类的内部,可以包括嵌套类
可以看一下示例
public class StaticAnonymousTest {
static class AnonymousClass {
//如果是普通内部类,会有如下编译错误提示
//The field a cannot be declared static in a non-static inner type, unless initialized with a constant expression
private static int a = 1;
//普通类内部也不好定义嵌套类
//The member type AnonymousClassInner cannot be declared static;
static types can only be declared in static or top level types
static class AnonymousClassInner {
}
}
}
3) 我们可以在接口中定义嵌套类,这样并不违反接口的规则