由于很久没用到这个知识点,差点忘了,今天遇到,写个记录
现在我有一个课程类(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博客
参考:官方文档