当一个类在Java中充满静态成员函数和变量时会发生什么?

时间:2015-10-27 12:57:54

标签: java

如果我定义一个充满静态成员函数和变量(java)的类,那么可能会发生一些有趣的事情。

我可以将该类用作类的单个实例,并且不必担心传递实例变量吗?

如果我没有实例化对象,构造函数将如何生效?所以我不能在构造函数中初始化静态成员变量,对吗?

2 个答案:

答案 0 :(得分:1)

如果我定义了一个充满静态成员函数和变量(java)的类,那么可能会发生一些有趣的事情。

实际上,通常helper / utility类没有实例级别字段。它们只有静态方法和静态字段。

我可以将该类用作该类的单个实例,并且无需担心传递实例变量

不,将所有方法和字段标记为static都不会使其成为 Singleton 类。

如果我没有实例化对象,构造函数将如何生效

执行new MyClass()时将调用默认构造函数。

所以我无法在构造函数中初始化静态成员变量,对吗?

你可以。除非它被标记为final。如果你有静态块,你可能会遇到麻烦

答案 1 :(得分:0)

它与具有静态成员的任何其他类一样工作,无论它们都是静态的还是只是其中的一部分。它们按预期使用 - 绑定到类,而不是实例。

此外,您实际上可以拥有"静态类"使用构造函数,查找Singleton模式(但请注意,该模式可能很容易被滥用)。