A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余清兰 中级黑马   /  2012-6-12 12:44  /  1886 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1黑马币 +20 收起 理由
黄奕豪 + 20 这个~~真不能给分了~~

查看全部评分

6 个回复

正序浏览
郑冬 发表于 2012-6-12 13:49
构造函数不用定义返回值类型,那是不是可以定义返回值类型呢?比如说用void修饰,张孝祥老师的课里听到过, ...

如果定义了返回值类型void,那就不是构造函数了,不能起到构造函数的作用,相当于重新定义了一个普通函数,调用这个类的时候不能自动执行这个函数里的代码,只能通过显示调用才行。
回复 使用道具 举报
孙新强 发表于 2012-6-12 13:08
补充一下啊 也要注意特殊情况 单态设计模式

谢谢补充,还没学到这里来呵,谢谢
回复 使用道具 举报
构造函数不用定义返回值类型,那是不是可以定义返回值类型呢?比如说用void修饰,张孝祥老师的课里听到过,被void修饰的构造函数就不在被自动调用了,被void修饰了的构造函数是变成了普通函数吗?
回复 使用道具 举报
补充一下啊 也要注意特殊情况 单态设计模式
回复 使用道具 举报
庄星睿 发表于 2012-6-12 12:51
构造函数不能用abstrct,final,static关键字修饰,如果一般函数用static修饰了还可用  类名.方法()调用 ...

嗯,构造函数直接写 函数名( );
回复 使用道具 举报
构造函数不能用abstrct,final,static关键字修饰,如果一般函数用static修饰了还可用  类名.方法()调用

评分

参与人数 1黑马币 +10 收起 理由
黄奕豪 + 10 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马