繁体   English   中英

静态类中非静态方法的意义是什么?

[英]What is the point of a non-static method in a static class?

我查看了这个问题,我想知道相反的情况。 为什么需要?

有人在那说:

为什么会有类中而不是模块中的“共享方法”? 答:要在其类的实例之间共享。

好了,这很清楚,为什么在非静态类中必须使用静态方法。 那相反呢?

相反(至少在C#中是不可能的)(静态类中的实例方法)。 它产生编译时错误。

仅当一个类是嵌套类时,才可以将其声明为static -当您希望可以访问该嵌套类而不必创建包含类的实例时,可以这样做。

除此之外,它只是一个普通的类,可以具有实例状态(非静态变量),您将像在其他任何类中一样在该类中使用非静态方法。

例如, HashMap包含一个静态嵌套类Entry ,该类具有一些非静态方法

ps:您刚刚添加了C#标记-我的答案与您原来的问题有关,即Java。

在Java中,静态方法在嵌套静态类中的工作方式与在非嵌套非静态类中的工作方式相同。

在给出的示例中, main(String[] args)必须是static

如果您有一个不使用this方法的方法,则最好(且更简单)使该方法static以便使其清晰可见,该方法不需要实例。

静态类无法实例化,因此在静态类内部没有使用非静态方法的声明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM