栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java中使用初始化程序与构造方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java中使用初始化程序与构造方法

静态初始化程序对于cletus很有用,我以相同的方式使用它们。如果你有一个静态变量要在加载类时进行初始化,则可以使用静态初始值设定项,尤其是因为它允许你执行复杂的初始化并且仍然具有静态变量be

final
。这是一个巨大的胜利。

我发现“

if(someStaticVar == null)//
做东西”是混乱且容易出错的。如果它是静态初始化并声明的
final
,则避免了被初始化的可能性null。

但是,当你说:

静态/实例初始值设定项可用于设置“最终”静态/实例变量的值,而构造函数不能

我假设你同时在说:

  • 静态初始值设定项可用于设置“最终”静态变量的值,而构造函数不能
  • 实例初始化器可用于设置“最终”实例变量的值,而构造函数不能
    而你在第一点上是正确的,在第二点上是错误的。例如,你可以执行以下操作:
class MyClass {    private final int counter;    public MyClass(final int counter) {        this.counter = counter;    }}

同样,当构造函数之间共享大量代码时,处理此问题的最佳方法之一是链接构造函数,并提供默认值。这很清楚地表明正在做什么:

class MyClass {    private final int counter;    public MyClass() {        this(0);    }    public MyClass(final int counter) {        this.counter = counter;    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517686.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号