我看了看这个问题,我想知道相反的情况。为什么会需要?
那里有人说:
为什么你会有一个在类中而不是在模块中的“共享方法”?答案:在其类的实例之间共享它。
那么这很清楚为什么有必要在非静态类中使用静态方法。相反的呢?
相反(静态类中的实例方法)是不可能的,至少在 C# 中是不可能的。它会产生编译时错误。
一个类只能static
在它是一个嵌套类时声明——当您希望该嵌套类可以访问而不必创建包含类的实例时,您可以这样做。
除此之外,它只是一个普通类,它可以具有实例状态(非静态变量),并且您可以在该类中使用非静态方法,就像在任何其他类中一样......
例如,HashMap
包含一个Entry
具有一些非静态方法的静态嵌套类。
ps:您刚刚添加了 C# 标记 - 我的回答与您的原始问题有关,标记为 Java。
在 Java 中,静态方法在嵌套静态类中的工作方式与在非嵌套非静态类中的工作方式相同。
在给出的示例main(String[] args)
中,必须是static
如果您有一个不使用的方法,this
则最好(并且更简单)制作该方法static
,以便清楚该方法不需要实例。
静态类不能被实例化,所以在静态类中声明非静态方法是没有用的。