两条线之间的差异

时间:2016-04-16 01:31:11

标签: java

假设我有一个名为Ellipse的类 然后,两行之间有什么区别

1-Ellipse ellipse = new Ellipse();
2-Ellipse e;

我首先知道,我可以访问ellipse类的所有元素,因为它正在创建Ellipse类的对象。但是第二,我可以做同样的事情

两者有什么区别。我可以从第一行而不是第二行做什么,反之亦然

3 个答案:

答案 0 :(得分:1)

第1行& 2:你声明Ellipse变量,首先是一个名为ellipse变量的变量,第二个是e

  • 第1行:为椭圆变量指定可行对象或引用。您现在可以在变量上调用Ellipse方法并访问任何公共字段。
  • 第2行:你没有为e变量分配任何内容,而是只有一个空引用,你还没有做任何事情。如果您尝试在分配引用之前使用变量,则可能会出现NullPointerException。

想象一个像空杯子一样的变量。你有两个杯子,第一个,椭圆形,你已经装满了啤酒,可以从中饮用并感到满意。第二个,e是空的,如果你想喝它,你会非常失望。

答案 1 :(得分:0)

Java不是C ++,Ellipse e;不分配new Ellipse(),它等同于Ellipse e = null;在合同中,第一个示例构造一个Ellipse实例并分配对变量ellipse的引用。

答案 2 :(得分:0)

第1行 - 声明并初始化一个新的Ellipse对象并将其分配给变量椭圆。

第2行,声明为Ellipse类型的变量e。