1 引用变量与对象实体
跟 Python 中的变量一样,对象实体存放在堆中,引用变量在栈中,如下例, m
和 n
变量存放在栈中,但他们引用(指向)同一个实体(在堆中)。
MyDate m = new MyDate(2000, 1, 1);
MyDate n = m;
m.addyear();
m.display(); // 结果为 2001-01-01
m.display(); // 结果为 2001-01-01
所以如果想要
m
和n
引用不同的对象实体,就需要new
2 字段变量与局部变量
字段变量是 new
出来的,所以会赋初值;而局部变量是通过栈指针移动而分配的(实际并没有显式分配),所以没有被赋初值。
这里不一样,C++ 中
static
可以修饰局部变量。