java基本类型作为类成员和方法成员时默认值问题

刚学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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值