3

为什么我们不能创建外部的静态类。我在这个社区阅读了这个问题的答案,但我没有得到完美的答案。有人能帮我一个准确的答案吗

   static class A
    {  
        void display()
        {
            System.out.println("This is a static class");  
        }

    }
4

5 回答 5

20

外部类已经有效嵌套staticstatic意味着它没有对外部类的引用。外部类已经没有对另一个类的隐式引用。

于 2013-08-03T19:29:25.820 回答
1

静态类究竟会做什么?它会是“所有实例的完全相同的实现”吗?想想看:)

于 2013-08-03T19:29:38.870 回答
1

因为这是没有意义和无用的。如果你想拥有静态对象,只需制作类的静态实例。如果您想调用类方法而不引用它的对象,只需将此方法设为静态即可。然后你将拥有:

class A
{  
   public static void display()
   {
      System.out.println("This is a static method");  
   }
}

您可以通过调用此方法A.display();

于 2013-08-03T19:35:02.743 回答
1

静态嵌套类只是工作中的命名空间。嵌套类在封闭类中是名称范围的,您可以认为外部类已经存在于该包的根命名空间中。

因此,不需要static关键字,因为该类在包中已经是全局的,并且如果是public则贯穿整个应用程序。

于 2013-08-03T19:41:03.910 回答
0

Java 中没有外部静态类。因为所有外部类都已经像静态修饰符一样可见。

但是你的意思是,你不想需要类的实例,你可以简单地将类中的所有方法和变量设为静态。

于 2013-08-03T19:34:49.153 回答