黑马程序员技术交流社区

标题: 构造函数的问题,求指教 [打印本页]

作者: 蔡萌仪    时间: 2015-7-28 22:21
标题: 构造函数的问题,求指教
最近一直对构造函数那个知识点有点迷茫,为什么要用构造函数啊,直接定义方法不行吗?或者直接创建对象不是也可以吗。求大神指教,不胜感激。
作者: 亦如梦幻泡影    时间: 2015-7-28 23:49
当你不写构造函数时,Java会默认一个空参数的构造函数的,比如你要定义一个学生类时,你没有添加构造函数,Java会自动添加一个空参数的构造函数public student(){},还有就是你要明白构造函数的作用是给对象初始化的。
作者: wode1311    时间: 2015-7-28 23:54
构造函数是在创建对象时,为对象的属性初始化值,只能赋值一次。也可以通过set方法为对象的属性赋值,可以多次赋值。对象只能通过构造方法创建,如果类里面没有构造函数,Java虚拟机会为类添加一个默认的无参构造方法,如果类里有自己定义的构造函数,虚拟机不再提供无参构造方法。创建对象只能通过构造函数来创建,为对象属性赋值有两种方法,既可以通过构造函数赋值,也可以通过set方法赋值。
作者: n361204357    时间: 2015-7-28 23:57
上面说的都是一个意思 ,就是说你不加无参构造,然后创建一个有参构造的话,会报错。
作者: maqijian    时间: 2015-7-29 10:06
有可以调用的构造函数才能在主函数创建那个类的新的对象,不然你只能单例,没有构造函数,谁知道你创建的这个东西是啥数据类型的,需要传递啥参数
作者: libin    时间: 2015-7-29 13:13
构造函数是一初始化就执行的代码,不仅可以简化代码,更重要的是传递一个对象一建立就需要有的属性
作者: zhaoyue    时间: 2015-7-29 15:41
举例子   Student s=new Student();
new开辟空间   
Student()就是构造函数;
创建对象的格式是这样的,所以构造函数是在创建对象时候用到的。具体作用赋初值。
作者: boboyuwu    时间: 2015-7-29 20:29
很多时候对创建类对象实例的时候直接就可以调用构造函数里面的方法了啊,多方便,不然你又要自己定义方法然后创建对象,然后对象.方法 ();这样不是增加代码量了吗,而且就算你不创建构造函数,系统也会自动创建一个空的构造函数,用构造函数的好处是简约代码量,节省空间
作者: boboyuwu    时间: 2015-7-29 20:30
对了 构造函数最大好处就是下面那个哥们说的创建对象实例的时候就会初始化,这在很多方面都会用到
作者: 高山高水高小波    时间: 2015-7-29 20:31
还没有学到哪里呢...
作者: e咕噜    时间: 2015-7-29 22:49
你要创建对象就要用到构造函数啊
作者: 曾云鹏    时间: 2015-7-29 23:08
上几层回答的很好
作者: jie191576208    时间: 2015-7-29 23:14
方便快捷
作者: aurora_bessie    时间: 2015-7-29 23:21
构造函数是用于给相应对象初始化的
作者: myself123    时间: 2015-7-30 10:15
Java这样规定的,你如果不用构造函数,他会有一个默认的空参数构造函数,当你创建一个对象时,Java默认会调用构造函数进行初始化,也就是说,如果想用自己的方式初始化,那就必须自定义构造函数。自定义方法一般是实现某一个功能,而对象的初始化不仅有功能,也有参数。
作者: tbcnscc3c2    时间: 2015-7-31 11:32
更方便啊、
一般好的程序员要么不定义构造方法(此时会默认一个无参构造方法),要么定义两个或两个以上的构造方法,新定义的有参构造方法会覆盖系统默认的构造方法,因此一般还会再定义一个无参构造方法
构造方法可以跟方便。比如,直接定义非静态方法,要在实例化对象对象再调用方法传入参数,而构造函数可以直接在实例化的时候就传入
额,这是我的理解、、有错望大神指出
作者: wzg76777    时间: 2015-7-31 12:03
无参构造初始化对象用的,有参构造可以在new对象时直接给成员变量赋值,更方便




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