Par*_*ram 21 java oop nested-class inner-classes
我已经开始学习用于Android应用程序开发的Java语言.
根据我对静态类的理解,我们无法实例化静态类的对象.
但为什么静态嵌套类对象的实例化允许在后面的situaltion?
class EnclosingClass
{
//...
class static StaticInnerClass
{
//...
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我们可以创建内部类的对象,如果它被标记为静态?
EnclosingClass.StaticInnerClass s = new EnclosingClass.StaticInnerClass()
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 27
根据我对静态类的理解,我们无法实例化静态类的对象.
您对"静态类"含义的理解是不正确的.基本上,Java中的"静态类" 是一个嵌套类,它没有对包含类的实例的隐式引用.有关更多信息,请参阅JLS的8.5.1节,特别是:
static关键字可以修改非内部类或接口T的主体内的成员类型C的声明.其效果是声明C不是内部类.正如T的静态方法在其体内没有T的当前实例一样,C也没有T的当前实例,也没有任何词法封闭实例.
也许你在想C#中的静态类,它们完全不同?