因此,最近我一直在提高自己的Java技能,并且发现了一些以前不了解的功能。静态和实例初始化程序是两种这样的技术。
我的问题是,何时将使用初始化程序而不将代码包含在构造函数中?我想到了几个明显的可能性:
静态/实例初始化器可用于设置“最终”静态/实例变量的值,而构造函数无法
静态初始值设定项可用于设置类中任何静态变量的值,该值应比在每个构造函数的开头使用“ if(someStaticVar == null)//做东西”代码块更有效。
这两种情况都假设设置这些变量所需的代码比简单地“ var = value”要复杂得多,否则,似乎没有任何理由使用初始化程序而不是在声明变量时简单地设置值。
然而,尽管这些并不是微不足道的收益(尤其是设置最终变量的能力),但似乎确实有少数情况下应该使用初始化器。
当然,在构造函数中可以完成很多事情,但是可以使用初始化程序,但是我真的不知道这样做的原因。即使一个类的所有构造函数都共享大量代码,使用私有的initialize()函数对我来说似乎比使用初始化程序更有意义,因为在编写新代码时,它不会使您锁定代码运行构造函数。
我想念什么吗?在其他情况下,应该使用初始化程序吗?还是在非常特殊的情况下使用它真的只是一个相当有限的工具?
天涯尽头无女友
千万里不及你
慕神8447489
相关分类