Java 这两条线的区别

Java 这两条线的区别,java,Java,假设我有一个名为Ellipse的类 那么,这两条线有什么区别呢 1-Ellipse ellipse = new Ellipse(); 2-Ellipse e; 首先我知道,我可以访问ellipse类的所有元素,因为它正在创建ellipse类的对象。但有了第二个,我也能做到 两者的区别是什么。从第一行开始,而不是第二行或第二行,我能做什么呢?第1行和第2行:声明椭圆变量,首先是一个名为eliple的变量,然后是一个名为e的变量 第1行:将可行对象或引用指定给椭圆变量。现在可以对变量调用Elli

假设我有一个名为Ellipse的类 那么,这两条线有什么区别呢

1-Ellipse ellipse = new Ellipse();
2-Ellipse e;
首先我知道,我可以访问ellipse类的所有元素,因为它正在创建ellipse类的对象。但有了第二个,我也能做到


两者的区别是什么。从第一行开始,而不是第二行或第二行,我能做什么呢?

第1行和第2行:声明椭圆变量,首先是一个名为
eliple
的变量,然后是一个名为
e
的变量

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

把一个变量想象成一个空杯子。你有两个杯子,第一个是椭圆,你已经装满了啤酒,可以从中喝到满足感。第二个,<代码> E<代码>是空的,如果你尝试从中吸取,你会非常失望。

< P> java不是C++,<代码>椭圆e;
不分配
新椭圆()
,它相当于
椭圆e=null在契约中,第一个示例构造一个
椭圆
实例,并将引用分配给变量
椭圆
第1行-声明并初始化一个新的椭圆对象,并将其分配给变量椭圆


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

尝试调用
e
上的任何方法将抛出
NullPointerException
。谢谢,这很有意义,这很有意义