2011-03-13 51 views
1

Java中的类是否为staticnon-staticJava中的类是静态还是非静态?

+5

你们要我先走吗?,确定.....什么? – st0le

+3

要静态还是不要静态 – necromancer

+2

为什么这会降低投票!?这个人显然不知道Java中的类是否是静态的。这使它成为一个有效的技术问题。 –

回答

7

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

+2

+1说一个(外部)类是静态的,它具有与说它是蓝色一样的含义。 – Thomas

+3

顶级(外部)类上的'static'关键字实际上会产生编译器错误。 –

4

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

public class NotStatic 
{ 
    static class StaticClass 
    { 
    } 
} 

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

编辑:

public class NotAStaticClass 
{ 
    private static int foo; 

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

你将如何静态实例化这个类?答案是,你不能。您仍然必须使用新的操作员。

NotAStaticClass s1 = new NotAStaticClass(); 
0

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

1

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

最佳做法避免在多线程信封使用静态下列情况下

  • 避免使用静态。
  • 避免在业务逻辑层中使用静态方法,否则可能会失去OOP的优势,如继承,运行时多态。
0

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