黑马程序员技术交流社区

标题: 构造方法的问题 [打印本页]

作者: linda2906881980    时间: 2015-5-10 20:43
标题: 构造方法的问题
构造方法和创建对象的问题,想问下是先有构造方法还是先有创建的对象?
作者: yky1678    时间: 2015-5-10 20:49
你这个问题就很无语,创建对象要构造函数,没有对象难道就没有构造函数了吗,当然不是。你把构造函数写到那里,想要创建对象的时候就用构造函数,不要对象就不用构造函数了嘛
作者: 碎裂的空格键    时间: 2015-5-10 20:51
肯定是先有构造啊。。。。。。
作者: Melo    时间: 2015-5-10 22:07
肯定是先有构造啊。。。
作者: 396460221    时间: 2015-5-11 10:52
构造函数就是用来创建本类对象的。先有构造方法后有对象。
作者: 杨春雨    时间: 2015-5-11 12:05
啊哈  和我最开始学的时候一样。我也不知道。问题的答案那 就是:在创建对象的时候,需要调用构造方法来创建对象。例如 Test2 test = new Test2();
你new了一个对象 是给这个对象在内存开辟一个空间来放这个对象 开辟了空间以后哪,在该实体空间中进行属性的空间分配,并进行了默认初始化,接下来对空间中的属性进行显示初始化,完了进行实体的构造代码块初始化。最后这才调用该实体对应的构造函数,进行构造函数初始化。初始化完了后就把它给了test,test引用了这个对象。(以上有一部分参考了lingzhou1的专栏)。
作者: 唐泉银    时间: 2015-5-11 13:35
先有构造方法啊,如果没有构造方法怎么创建对象?
作者: sndlg    时间: 2015-5-11 13:37
对象都是构造函数创建的。你看代码就知道
作者: zy18692243338    时间: 2015-5-11 21:48
同步啊,琳达~~~~~~~
作者: V_nan    时间: 2015-5-11 21:51
构造函数貌似存在方法区,创建对象的时候去调用与之对应的构造函数
作者: ZSMAN    时间: 2015-5-11 21:53
构造函数必须有啊~
作者: cjmjava    时间: 2015-5-11 21:57
创建对象的时候才会去加载构造方法
作者: xicheng26    时间: 2015-5-11 22:19
造方法就是与类同名的那个方法,它的作用是可以用来初始化 class Person //人类{ public Person(String n,int a) //构造方法  {  name = n; age = a; }  private string name;  private int age; } static void main(String[] args){ Person p = new Person("张三",14);//这就是作用 } new一个对象的时候要用到构造函数,例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法;Hello hello = new Hello("hi");这个是调用Hello有参数构造方法,在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上.如果Hello类中已经有了一个有参数的构造方法,这时再使用 Hello hello = new Hello();来创建对象的时候就会出错,这就是为什么书上要强调写了有参数的构造方法就最好加一个无参数的构造方法.
作者: xicheng26    时间: 2015-5-11 22:22
构造方法就是和类同名的方法,特别之处就在于new的时候会被自动调用,一般在这里做初始化数据等操作
并不强制要求所有的类都要有构造方法,如果没有什么需要初始化的数据,完全可以不用构造方法

由于Java有内存的自动垃圾回收机制,所以一般不用像C++里的析构函数做清理工作,Java自动帮着搞定了
但是像打开的文件关闭这样的操作,最好还是在程序中明确的调用一下比较好
作者: liya7907    时间: 2015-5-11 22:36
构造函数啊,同意楼上意见。
作者: roybill    时间: 2015-5-11 22:41
学习学习了!!!
作者: 赵旗    时间: 2015-5-11 22:42
在创建对象的时候调用构造函数    比如 Student s = new Student();          new Student()  这一块就相当于调用空参构造方法
作者: linda2906881980    时间: 2015-5-28 20:10
zy18692243338 发表于 2015-5-11 21:48
同步啊,琳达~~~~~~~

哈哈哈   苦逼的小白
作者: 守株人    时间: 2015-5-28 21:45
先有构造函数呗
作者: l598790586    时间: 2015-5-28 21:49
对象是由构造函数创建的,肯定现有构造函数
作者: 人在旅途~东营    时间: 2015-5-28 21:55
先有构造函数,然后才能创建对象,就算你没有写构造函数,系统也会自动帮你写一个的
作者: 仅此一抹心醉    时间: 2015-5-28 22:02
不是先有构造方法吧············




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2