2 huanxuan163 huanxuan163 于 2016.09.07 09:15 提问

Java中的构造方法是怎么运作的?

class A{
public A(){

        }

}
像这样一个默认的构造方法,里面什么东西都没有,那么当我们new一个对象出来的时候,
这个空的构造方法到底是起了什么作用?

6个回答

qq_29594393
qq_29594393   Ds   Rxr 2016.09.07 09:39

什么作用都没有
你可以理解为一个函数(构造方法本来就是函数。。),函数里你放什么都可以,系统执行并不关心内容,只关心是否有这个函数,这个空的构造方法一般都是构造函数重载,方便声明对象,
但是Java中很少有写空的构造方法,因为默认就是空构造方法,有其他构造方法一般都是强制要求参数,或者是通过其他对象来获取,

Veggiel
Veggiel   2016.09.07 09:42

构造方法的主要作用是用来给创建对象进行初始化,
尽管Java语言中对基本数据类型都指定了固定值,但是还是需要使创建的对象处于
正常合理状态,而使用默认的构造方法在创建对象时使用的是默认值。

yuanxiao27
yuanxiao27   2016.09.07 09:54

没有继承其他类的类的父类都是Object类,如果你没有自定义构造函数,那么在编译的时候会默认帮你生成一个无参构造函数,这个无参构造函数的作用就
就在于你new A()的时候调用的,另外如果你自定义的把构成函数定义成private A(){},或者把构成函数定义成带参数的:public A(int i){} 那么在new对象
的时候,就会受到定义的限制:比如,private A(){} 这个时候,你只能在class内部调用 new A(); public A(int i){} 这个时候 你new A的时候必须传入参数

qxw199607
qxw199607   2016.09.07 11:59

会画栈和堆的内存分解 ,然后你就发现很简单了。

zoujian1993
zoujian1993   2016.09.07 12:02

这个啊,就像楼上说的。java中object是所有类的父类。虽然构造方法是空的,但是还是会执行一些初始化操作。简单一点的理解就是new的时候在内存里申请了一段内存空间

StaticFinal520
StaticFinal520   2016.09.07 12:03

系统看到构造函数就会在堆内存中分配一块内存

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!