java - 创建 "new object"和 "Class objectname"之间的区别

标签 java class object

比如说我有一个叫做电话的类。

有什么区别:

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/

相关文章:

java - 如何使用 Spring Data REST 的多态关联

class - 如何在 Jenkins 管道中导入类文件?

JavaFX 导致致命的 SIGSEGV 错误

java - 如何从 Firebase Android 查询中的 StartAt 特定位置和 EndAt 特定位置获取值

java - 使用自定义 hk2 InjectionResolver 注入(inject)应用程序配置

python 3 : Adding function to a already created object

C++ 为什么在传递类指针时调用析构函数?

JavaScript : How to delete array if we have a collection of element's properties

javascript - 无法在对象中动态设置属性

javascript - 根据一个对象和另一个字符串数组填充一个数组