[英]Do they have the equivalent of C# static classes in Java?
他们在Java中是否具有相当于C#的静态类?
我想创建一个C#静态类,但在Java中,我该怎么做?
谢谢您的帮助。
编辑:谢谢你的帮助。 :)
Java类中有静态成员,但没有静态类,如C#中。
但是,从使用的角度来看,C#static class修饰符并没有真正改变关于类的任何内容。 它只会阻止您在编译时添加实例变量。
您可以通过将每个成员声明为静态来创建一个类似于C#静态类的Java类。 有关详细信息,请参阅“ 了解实例和类成员 ”的教程部分。
不,只需将一切标记为静态 可能会添加一个私有构造函数,它会抛出错误并使类成为final
。
试试这个:
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;
}
}
}
在每种OO语言中,静态类声明的一个好的(更灵活的)替代方法是使用单例模式。
但是,如果您的类是纯实用程序类,则可以将所有成员/方法声明为静态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.