黑马程序员技术交流社区

标题: 个人总结构造函数和一般函数区别 [打印本页]

作者: 余清兰    时间: 2012-6-12 12:44
标题: 个人总结构造函数和一般函数区别
构造函数和一般函数区别:
1、在写法上有不同。构造函数的函数名与该类的类名相同,而一般函数的函数名可以用符合规则的任意字符命名。构造函数不用定义返回值类型(注:void也是返回值类型),而一般函数要定义返回值类型,若没有返回结果,也要定义返回值类型void。所以构造函数不用写return语句。
2、在运行上也有不同。构造函数是在对象一建立就运行,给对象初始化。而一般函数是对象调用才执行,是给对象添加对象具备的功能。一个对象建立,构造函数只运行一次,而一般函数可以被该对象调用多次。
3、调用方式不同。构造函数使用new调用,是给成员变量赋值,一般函数使用 对象.方法( )调用,是实现形参与实参之间的调用。

作者: 庄星睿    时间: 2012-6-12 12:51
构造函数不能用abstrct,final,static关键字修饰,如果一般函数用static修饰了还可用  类名.方法()调用
作者: 余清兰    时间: 2012-6-12 12:55
庄星睿 发表于 2012-6-12 12:51
构造函数不能用abstrct,final,static关键字修饰,如果一般函数用static修饰了还可用  类名.方法()调用 ...

嗯,构造函数直接写 函数名( );
作者: 孙新强    时间: 2012-6-12 13:08
补充一下啊 也要注意特殊情况 单态设计模式
作者: 郑冬    时间: 2012-6-12 13:49
构造函数不用定义返回值类型,那是不是可以定义返回值类型呢?比如说用void修饰,张孝祥老师的课里听到过,被void修饰的构造函数就不在被自动调用了,被void修饰了的构造函数是变成了普通函数吗?
作者: 余清兰    时间: 2012-6-12 13:57
孙新强 发表于 2012-6-12 13:08
补充一下啊 也要注意特殊情况 单态设计模式

谢谢补充,还没学到这里来呵,谢谢
作者: 余清兰    时间: 2012-6-12 14:00
郑冬 发表于 2012-6-12 13:49
构造函数不用定义返回值类型,那是不是可以定义返回值类型呢?比如说用void修饰,张孝祥老师的课里听到过, ...

如果定义了返回值类型void,那就不是构造函数了,不能起到构造函数的作用,相当于重新定义了一个普通函数,调用这个类的时候不能自动执行这个函数里的代码,只能通过显示调用才行。




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