静态类中非静态方法的重点是什么?

时间:2012-09-19 10:56:28

标签: c# oop static scope

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

有人说:

  

为什么你会有一个类中的“共享方法”,而不是一个   模块?答:在同类的实例中分享。

很明显,为什么有必要在非静态类中使用静态方法。那相反呢?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

当一个类是嵌套类时,只能声明它为static - 如果希望可以访问该嵌套类而不必创建包含类的实例,则可以这样做。

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

例如,HashMap contains a static nested class Entry which has some non-static methods

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

答案 2 :(得分:1)

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

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

如果你有一个不使用this的方法,那么优先(并且更简单)使方法static如此明确,方法不需要实例。

答案 3 :(得分:0)

静态类无法实例化,因此不会在静态类中声明非静态方法。