通过默认构造函数与对象实例化混淆

时间:2014-11-26 09:25:54

标签: java

我将非常感谢你的帮助:

为什么我们使用以下语法创建对象:

A a = new A();

为什么我们使用默认构造函数?即使我的班级结构像

class A{
  public static void main(String[] aregs)
  {
    A a = new A();
  }
}

我没有声明任何实例变量,那么为什么我需要默认构造函数?

为什么我们的构造函数名称与类名相同?

构造函数是否返回任何值或引用。

2 个答案:

答案 0 :(得分:0)

我没有声明任何实例变量,那么为什么我需要默认构造函数?

创建对象需要构造函数。即使你没有在类中声明任何字段,你仍然需要调用构造函数,该构造函数将依次(自动)调用超类的构造函数,然后在堆上分配一个对象,并返回对此分配的引用对象

为什么我们的构造函数名称与类名相同

这只是语言规范。

构造函数返回任何值或引用

是的,正如我之前提到的,它返回对堆上创建的对象的引用。

答案 1 :(得分:0)

  1. 您需要一个默认构造函数,以便它可以创建该对象的实例。这是必需的,因此它可以获取内存地址,因此java知道对象数据的存储位置
  2. 它与类名相同,因此java知道哪些方法是构造函数
  3. 构造函数不返回任何值,它在后台返回的是内存地址(如1所示)。
  4. 这是该语言附带的所有基本java内容。如果我是你,我会看this