他们在Java中是否具有相当于C#的静态类?

时间:2009-10-02 20:30:02

标签: c# java

它们是否具有Java中的C#静态类?

我想创建一个C#静态类但是在Java中,我该怎么做?

感谢您的帮助。

编辑:谢谢你的帮助。 :)

4 个答案:

答案 0 :(得分:17)

Java类中有静态成员,但没有静态类,如C#。

从使用的角度来看,C#静态类修饰符并没有真正改变关于类的任何内容。它只会阻止您在编译时添加实例变量。

通过将每个成员声明为静态,您可以在Java中创建一个类似于C#静态类的类。有关详细信息,请参阅“Understanding Instance and Class Members”的教程部分。

答案 1 :(得分:8)

没有。只需标记一切静态。可能会添加一个私有构造函数,它会抛出错误并生成类final

答案 2 :(得分:0)

在每种OO语言中,静态类声明的一个好的(更灵活的)替代方法是使用单例模式。

但是,如果您的类是纯实用程序类,则可以将所有成员/方法声明为静态。

答案 3 :(得分:0)

尝试一下:

public class Util
{
    // final prevents inheritance, just like C# static classes can't be inherited
    // final is basically like the C# sealed keyword.
    public static final class Math
    {
        // prevent constructor from being called
        private Math(){}
        static
        {
            // Acts like a C# static constructor. (only runs once, )
        }
        public static int Add(int num1, int num2)
        {
            return num1+num2;
        }
    }
}