为什么不能像 Python 那样直接 o = Obj() ,就完事了?
Objo=newObj();// ↑ ↑// │ └─ ② 在堆内存中创建对象(运行时动作)// └────── ① 声明一个引用变量(编译期动作)左边 Obj o:**声明一个类型为 Obj 的引用变量 o。**此时 o 还没有指向任何对象,它只是一个"能装 Obj 地址的盒子"。
右边 new Obj():真正在堆内存里分配空间、创建对象实例,并返回这个对象的内存地址。
中间的 =:**把这个地址赋给变量 o。**此后 o 就"指向"了那个对象。