如果我定义一个充满静态成员函数和变量(java)的类,那么可能会发生一些有趣的事情。
我可以将该类用作类的单个实例,并且不必担心传递实例变量吗?
如果我没有实例化对象,构造函数将如何生效?所以我不能在构造函数中初始化静态成员变量,对吗?
答案 0 :(得分:1)
如果我定义了一个充满静态成员函数和变量(java)的类,那么可能会发生一些有趣的事情。
实际上,通常helper / utility类没有实例级别字段。它们只有静态方法和静态字段。
我可以将该类用作该类的单个实例,并且无需担心传递实例变量
不,将所有方法和字段标记为static
都不会使其成为 Singleton 类。
如果我没有实例化对象,构造函数将如何生效
执行new MyClass()
时将调用默认构造函数。
所以我无法在构造函数中初始化静态成员变量,对吗?
你可以。除非它被标记为final
。如果你有静态块,你可能会遇到麻烦
答案 1 :(得分:0)
它与具有静态成员的任何其他类一样工作,无论它们都是静态的还是只是其中的一部分。它们按预期使用 - 绑定到类,而不是实例。
此外,您实际上可以拥有"静态类"使用构造函数,查找Singleton模式(但请注意,该模式可能很容易被滥用)。