假设我有一个名为Ellipse的类 然后,两行之间有什么区别
1-Ellipse ellipse = new Ellipse();
2-Ellipse e;
我首先知道,我可以访问ellipse类的所有元素,因为它正在创建Ellipse类的对象。但是第二,我可以做同样的事情
两者有什么区别。我可以从第一行而不是第二行做什么,反之亦然
答案 0 :(得分:1)
第1行& 2:你声明Ellipse变量,首先是一个名为ellipse
变量的变量,第二个是e
。
e
变量分配任何内容,而是只有一个空引用,你还没有做任何事情。如果您尝试在分配引用之前使用变量,则可能会出现NullPointerException。想象一个像空杯子一样的变量。你有两个杯子,第一个,椭圆形,你已经装满了啤酒,可以从中饮用并感到满意。第二个,e
是空的,如果你想喝它,你会非常失望。
答案 1 :(得分:0)
Java不是C ++,Ellipse e;
不分配new Ellipse()
,它等同于Ellipse e = null;
在合同中,第一个示例构造一个Ellipse
实例并分配对变量ellipse
的引用。
答案 2 :(得分:0)
第1行 - 声明并初始化一个新的Ellipse对象并将其分配给变量椭圆。
第2行,声明为Ellipse类型的变量e。