比如说我有一个叫做电话的类。
有什么区别:
Phone p;
和
Phone p = new Phone(200) //(200 is the price of the phone).
和
new Phone(200)
我用谷歌搜索过,甚至在 Eclipse 上尝试过,但无法弄清楚。
最佳答案
Phone p;
只声明了一个引用处理程序 p
,它不指向任何地方(它没有初始化,在你给它分配一些东西之前不能使用[感谢@Anthony])。Phone p = new Phone(200);
声明了一个引用处理程序 p
,它指向一个新创建的 Phone
对象(用 Phone(200)
初始化)。new Phone(200)
创建了一个新的 Phone
对象,但由于没有对它的引用存储在任何地方,它立即适合垃圾收集(除非其构造函数在某处存储引用)。
(请注意,在 Java 中,所有类型为引用类型的“变量”都是真正的引用处理程序。只有值类型的变量直接包含值。由于 Phone
是引用类型(它是 class
),因此 Phone p
始终是“对 Phone
的引用。)
关于java - 创建 "new object"和 "Class objectname"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314424/