我有一个只包含静态方法的类。这个类本身应该也是静态的吗?这是否重要?
重要吗?
将一个类设为静态可以确保它永远不会被实例化,如果用户尝试这样做,编译器会产生错误。如果这个类只包含静态成员而不能被实例化,那么就没有理由不将其设置为静态。你可以选择不这样做,但是这样的类的实例并不会非常有用,创建这些实例的用户可能会感到困惑。
另一方面,如果您希望创建该类的实例,但是您期望派生类实现自己的实例成员,那么很有可能这个类应该是抽象的,而不是静态的(也许通过抽象定义或接口事先声明那些实例成员)。
一般情况下:是的。
您可以通过将类设置为 static
来防止程序员创建某个类的对象实例。如果这是您想要的,那么就这样做。这可以避免错误,通过显示(给其他同事等)该类不打算被实例化。
public static class A
{
// Some static member
}
A a = new A(); // Compilation error
new YourClass()
没有意义。 - Lasse V. KarlsenYourClass
不必是static
就能执行YourClass.doSomething();
。只有doSomething()
必须是static
。 - Guy