Java 布尔实例变量的默认值是true还是false
如果在类中创建实例变量,则默认值是true还是false,除非另有更改Java 布尔实例变量的默认值是true还是false,java,instance-variables,Java,Instance Variables,如果在类中创建实例变量,则默认值是true还是false,除非另有更改 将实例变量设置为ex.true,然后将值更改为false并在整个类中使用该变量,这是一种好的做法吗?或者,在使用实例变量时,您应该在概念上避免这一点吗 如果在类中创建实例变量,则为默认值 除非另有更改,否则为真还是假 如果变量类型为布尔型,则默认值为false,原语变量默认值id0,对象变量/参考变量默认值为null 将实例变量设置为ex.true是一种好的做法吗 将该值更改为false并在整个类中使用该变量 你可以这样做,
0
,对象变量/参考变量默认值为null
将实例变量设置为ex.true是一种好的做法吗
将该值更改为false并在整个类中使用该变量
你可以这样做,这取决于你的要求
如果在类中创建实例变量,则默认值是true还是false,除非另有更改
如果成员是基元,则false
。如果是包装器,则null
将实例变量设置为ex.true,然后将值更改为false并在整个类中使用该变量,这是一种好的做法吗?或者,在使用实例变量时,您应该在概念上避免这一点吗
设置true或false将取决于您的类上下文。一点问题也没有
例如:您正在创建一个customer对象,并拥有一个实例memeber isActive。如果您的设计允许所有客户默认处于活动状态,那么您是对的。
- 每个类变量、实例变量或数组组件在创建时都会使用默认值进行初始化(§15.9,§15.10):
- 对于类型
,默认值为零,即byte
的值(byte)0
- 对于类型
,默认值为零,即short
的值(short)0
- 对于类型
,默认值为零,即int
0
- 对于类型
,默认值为零,即long
0L
- 对于类型
,默认值为正零,即float
0.0f
- 对于类型
,默认值为正零,即double
0.0d
- 对于类型
,默认值为空字符,即char
'\u0000'
- 对于类型
,默认值为boolean
false
- 对于所有参考类型(§4.3),默认值为
null
- 对于类型
false
。()
将实例变量设置为ex.true,然后将值更改为false并在整个类中使用该变量,这是一种好的做法吗
我想您的意思是,定义布尔实例变量以便依赖默认初始化是一种好的做法
答案是:不,这不是好的做法:
- 定义实例变量以使其对代码读者有意义是一种很好的做法:
(现在,如果变量被否定,那么代码可能更容易理解……但关键是,您应该根据什么使代码更容易理解来决定……而不是基于默认初始化。)// Good (probably) private boolean isValid = true; // Bad (probably) private boolean isNotValid; // so that I can rely on default init
- 在这种粒度级别上花时间担心性能问题是不好的做法。避免显式初始化的性能好处很可能是微不足道的
isInvalid
或idNotValid
而不是isValid
的动机。我想我明白了,我同意你的看法。我只是建议用另一种方式来编写您选择的特定示例,这对我个人来说更容易接受(我的意思是,一个带有“not”一词的布尔变量看起来很奇怪)。
// Good (probably)
private boolean isValid = true;
// Bad (probably)
private boolean isNotValid; // so that I can rely on default init