黑马程序员技术交流社区

标题: 构造函数与函数重载 [打印本页]

作者: 潘多拉    时间: 2014-8-20 22:18
标题: 构造函数与函数重载
构造函数与函数重载有什么关系吗?
作者: 张小楼    时间: 2014-8-20 23:28
这两个应该没有什么关系吧,构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。函数重载是为了方便常用来实现功能类似而所处理的数据类型不同的问题。两者之间没有直接的联系吧,,,,
作者: 依然超级赛亚人    时间: 2014-8-20 23:30
我认为构造函数是函数重载的一个体现。我们知道,方法声明相同,参数列表不同的函数之间互称为函数重载。而对于一个具有多个构造函数的类来说,它的这些构造函数之间显然是方法(函数)重载的体现。
作者: java_dream    时间: 2014-8-21 01:40
没有关系,构造函数是负责创建对象的,负责初始化实例变量;而函数重载是相同功能的不同实现
作者: Mokill0911    时间: 2014-8-21 02:19
嘛…… 两个其实从某种意义上来说是不同的概念……

【构造函数】
构造函数如楼上的同学所说,首先它是一个函数,其次它负责给实例对象初始化;

【函数重载】
函数重载是只函数的一种存在形式,即有两个名称相同的函数,且返回值类型相同,但两个函数内部的功能稍有区别,这时候可以通过不同的参数列表加以区分,这时这两个同名函数都能存在于同一个类中。
这就是函数的重载形式;

【构造函数的重载】
虚拟机会自动给每个对象设立一个空参数的构造函数,它的存在是隐性的,也就是你看不到的。但有时候,根据具体需求,可以对这个构造函数进行重载,也就是定义一个名字与类名相同的函数,然后在参数列表里定义需要接收的参数。
这个时候你就定义了一个自己的构造函数,它以重载的形式存在于类中,并代替原有的空参数构造函数给对象进行初始化;


PS:如果想看简单点的解释,看蓝色字体部分就行~

小弟愚见,欢迎拍砖:)
作者: iefegend    时间: 2014-8-21 10:23
楼上讲的很全面啊,,,:)
作者: Baiye    时间: 2014-8-21 10:36
构造函数可以被重载
作者: lhtwm1    时间: 2014-8-21 12:15
这是面向对象里的题吗?我刚看到面向对象




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