这两种在java中声明对象的方式之间的区别是什么?

时间:2017-02-27 08:39:50

标签: java

Display dis;

Display dis = new Display();

这两个陈述到底是做什么的? 我已经尝试过这两种方法,但似乎无法知道其中的差异。 附: noob编码器

3 个答案:

答案 0 :(得分:0)

Display dis;

以上语句是类型为Display的引用声明。这里没有创建对象。

Display dis = new Display();

此语句是Display类型的对象实例化。

这两个陈述完全不一样。第二个语句使用new运算符创建对象,并将创建的对象分配给引用dis,以便您可以使用dis对对象执行操作。

例如:

dis.show();

如果没有创建对象,您将无法执行上述操作。

希望这有帮助!

答案 1 :(得分:0)

当您执行dis = new display();时,会在内存中创建一个新的Display对象,并将其引用放在dis下。当您只是在Display dis时,会在变量中保留堆栈中的某个位置,但是那里有null而不是"真正的"对象

答案 2 :(得分:0)

与其他编程语言(如C ++)不同,仅声明变量以分配实际对象是不够的:

Display dis; // dis == null

您需要使用

实例化对象
dis = new Display(); // dis now contains a reference to a new Display instance

如果您愿意,可以声明变量并同时为新实例分配引用:

Display dis = new Display();

(注意:在Java中,通常使用大写字母启动类名称)