【学习笔记】java非局部变量有初始值

由于很久没用到这个知识点,差点忘了,今天遇到,写个记录

现在我有一个课程类(Course)

public class Course {
    private int cid; // 课程号

    public Course() {} // 空构造

    public int getCid() { // 获取id
        return cid;
    }

}

我新建一个课程类,打印 id,结果是0

Course c = new Course();
System.out.println(c.getCid()); // 打印结果是0

 为什么这里的cid是0?

因为Course类中的cid是int类型,而int类型的默认值是0,如果Course类中的cid为空,就会被替换成0

但我这样写,则会报错 ` 变量 'i' 可能尚未初始化 `

int i;
System.out.println(i);

为什么这里的 i 是报错?

因为 i 是局部变量,没有初始化,所以不能使用

如果不是局部变量呢

我在外面定义一个 x 和 y ,然后在main函数中打印,结果都为0

public class Test {
    static int x;
    int y;

    public static void main(String[] args) {
        System.out.println(x);      // 结果为0
        Test test = new Test();
        System.out.println(test.y); // 结果为0
    }
}

说明非局部变量有初始值(局部变量没有初始值,所以必须初始化才能用)

不同类型初始值是多少可以参考这篇文章:Java未赋值变量的初始值(默认值)_花木雨的博客-CSDN博客

参考:官方文档 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值