Java/C# 静态类之间的主要区别是什么?

2022-09-02 21:29:15

在 C# 中,静态类是一个类,除了不支持继承之外,还可以具有“普通”类可以具有的除实例成员之外的任何类型的类型成员。

不太确定静态类在java中是如何工作的,但基于我所看到的Java代码的有限数量,我很清楚它们的工作方式并不完全相同。

有人可以列举出差异吗?


答案 1

Java中的静态类是该语言提供的三种嵌套类之一(另外两种是非静态嵌套类和函数范围的类)。

Java 的静态类的行为方式与 C# 的嵌套类相同:它们有权访问封闭类的静态成员,但如果没有对封闭对象的附加引用,则无法访问实例成员。相比之下,非静态嵌套函数可以访问实例变量,但您需要一个封闭的实例才能进行实例化。


答案 2

在 C# 中

使用静态类来包含不与特定对象关联的方法。例如,创建一组不作用于实例数据且不与代码中的特定对象关联的方法是一项常见要求。可以使用静态类来保存这些方法。

静态类的主要功能是:

  • 它们仅包含静态成员。
  • 它们无法实例化。
  • 它们是密封的。
  • 它们不能包含实例构造函数

在爪哇语中 :

  • 只有嵌套类可以是静态的。

  • 可以在类中具有静态成员


推荐