Eug*_*neP 9 java initialization
它是null对Object类型?
class C {
int i;
String s;
public C() {}
}
Run Code Online (Sandbox Code Playgroud)
会s永远null吗?
简单类型怎么样int?那会是什么?零或任意值?
方法中的局部变量怎么样?
public void meth() {
int i;
}
Run Code Online (Sandbox Code Playgroud)
什么是酉值i?
然而,依赖于这样的默认值通常被认为是糟糕的编程风格.
好的,你建议我们做什么?
class A {
String s = "";
int i = 0;
}
Run Code Online (Sandbox Code Playgroud)
要么:
class A {
String s;
int i;
public A() {
// default constructor
s = "";
i = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
哪个更好?为什么?
sti*_*pie 29
来自太阳java教程
声明字段时并不总是需要分配值.声明但未初始化的字段将由编译器设置为合理的默认值.一般来说,此默认值将为零或null,具体取决于数据类型.然而,依赖于这样的默认值通常被认为是糟糕的编程风格.
下表总结了上述数据类型的默认值.
Data Type Default Value (for fields)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
boolean false
String (or any object) null
Run Code Online (Sandbox Code Playgroud)
局部变量略有不同; 编译器永远不会为未初始化的局部变量分配默认值.如果无法初始化声明它的局部变量,请确保在尝试使用它之前为其赋值.访问未初始化的局部变量将导致编译时错误.
| 归档时间: |
|
| 查看次数: |
19708 次 |
| 最近记录: |