Java中的类是“静态”还是“非静态”?

时间:2011-03-13 08:52:47

标签: java

Java中的课程是static还是non-static

6 个答案:

答案 0 :(得分:7)

Static仅适用于块,方法和类成员变量。虽然内部类可以是其封闭类的静态成员,但是具有类静态没有任何意义。请参阅nested classes.

答案 1 :(得分:4)

类不是静态的。只有内部类可以标记为静态

public class NotStatic
{
   static class StaticClass
   {
   }
}

这是唯一可以是静态的类型。

编辑:

public class NotAStaticClass
{
   private static int foo;

   public static int getFoo()
   { return foo; }
}

您将如何静态实例化此课程?答案,你不能。您仍然必须使用新运算符。

NotAStaticClass s1 = new NotAStaticClass();

答案 2 :(得分:2)

您是否可能会问Java是否是静态类型的语言?如果是这样,那么答案是肯定的。见Wikipedia on Static Typing

答案 3 :(得分:1)

您是在考虑静态内部类或静态方法还是静态变量?

作为最佳做法,请避免在以下情况下使用静态

  • 避免在MultiThreaded Env。中使用Static。
  • 避免在业务逻辑层中使用静态方法,否则可能会丢失 OOP的优点,如继承,运行时多态性。

答案 4 :(得分:0)

静态的概念是只初始化一次,即在内存中只有一个副本。可以随时使用相同的副本,而无需再次在内存中创建另一个副本。所以作为模板的类不是静态的......

答案 5 :(得分:0)

类不能是静态的。只有类中的方法,块和变量可以是静态的,而不是类本身。