刚学Android时,就被告知八中基本类型(short、int、long、float、double、char、byte、boolean)都是有默认值的。但是偶尔的一次代码编写过程发现,当在方法中定义变量时,必须要进行初始化,否则会提示错误:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int i;
i++;
}
结果提示“Variable i might not have been initialized”。
经过一番研究才发现,基本类型只有作为类成员时,才有默认值;作为方法成员时,没有默认值,需要手动初始化赋值。
为什么要这么做呢?《Thinking in java》中给出了答案:类成员面向的是该类(甚至其他类)当中多个方法,不同方法功能不同,所以使用目的不一;而方法成员面向的只是该方法,目的简单唯一,如果不进行初始化反倒像是一个bug。