Why instantiation of static nested class object is allowed?

前端 未结 3 1083
迷失自我
迷失自我 2020-12-08 20:42

I have started learning Java language for Android Application developement.

As per my understanding based on static class, we cannot instantiate object of static cla

3条回答
  •  抹茶落季
    2020-12-08 21:12

    As per my understanding based on static class, we cannot instantiate object of static class.

    Your understanding of the meaning of "static class" is incorrect. Basically a "static class" in Java is a nested class which doesn't have an implicit reference to an instance of the containing class. See section 8.5.1 of the JLS for more information, in particular:

    The static keyword may modify the declaration of a member type C within the body of a non-inner class or interface T. Its effect is to declare that C is not an inner class. Just as a static method of T has no current instance of T in its body, C also has no current instance of T, nor does it have any lexically enclosing instances.

    Perhaps you were thinking of static classes in C#, which are completely different?

提交回复
热议问题