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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王洪涛 中级黑马   /  2014-8-2 22:21  /  8300 人查看  /  19 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

函数名前加void和不加void的区别?(函数名于类名相同)

点评

函数名与类名相同时,为构造函数 构造函数无返回值,不能加返回值类型  发表于 2014-8-3 00:17

19 个回复

倒序浏览
加void是返回值为空。。。。
不加void ,也不加别的类型,不会报错?
回复 使用道具 举报
一个是构造函数。一个是普通方法
回复 使用道具 举报
函数必须有返回值类型,加void
回复 使用道具 举报
加void的函数返回值为空
不加void要么加别的返回值类型 ,要么是构造方法  吧
回复 使用道具 举报
加void是不用返回值,不加的时候是构造方法
回复 使用道具 举报
我搞晕了!原来我是这么差劲啊!
回复 使用道具 举报
函数名与类名相同,就应该是构造函数,构造函数是不需要返回值的,而且void也代表不需要返回值,加了void就是画蛇添足吧。
还有就是直接写代码测试下~
回复 使用道具 举报
不加void,需要返回值,不加就不需要。
回复 使用道具 举报
void不用返回值,其他的要返回对应的返回值,
比如int类型的就要返回int
回复 使用道具 举报
梧桐树下 来自手机 中级黑马 2014-8-3 00:13:44
11#
Void是没有具体返回值
回复 使用道具 举报
梧桐树下 来自手机 中级黑马 2014-8-3 00:15:00
12#
不加void就必须加一个返回值类型像int.string
回复 使用道具 举报
返回值的区别,是否需要返回值的原因吧
回复 使用道具 举报
烟海 发表于 2014-8-2 22:27
加void是返回值为空。。。。
不加void ,也不加别的类型,不会报错?

意思就是加了void会有个默认的返回值,但值为空,
也可以把void换成具体的返回值类型,但必须有返回值
不加void的话就是说连默认的返回值都没有了?
回复 使用道具 举报
王洪涛 发表于 2014-8-3 00:22
意思就是加了void会有个默认的返回值,但值为空,
也可以把void换成具体的返回值类型,但必须有返回值
不 ...

意思就是加了void会有个默认的返回值,但值为空,
也可以把void换成具体的返回值类型,但必须有返回值
不加void的话就是说连默认的返回值都没有了?

前面两句都对的。。
不加void就是说返回值不为空,就要求有返回值。。比如int double 等等各种类型。。
默认是没有返回值什么的。。根据自己需求,如果没有返回值,则为void ,有返回值,则在这儿写上返回值的类型。。

点评

void 的方法内会有一个隐藏的但什么都不返回的语句--return  发表于 2014-8-3 10:05
回复 使用道具 举报
普通方法要带有返回值类型的,如果方法前没有返回值类型,且方法名与类名不一样,则会编译错误。构造方法绝对没有返回值,且与类名相同,所有没有返回值类型,并方法名与类名相同的方法就是构造函数。
回复 使用道具 举报
Java中类中的声明,除了构造函数,都得有类型,变量 声明:  类型   对象=。。。
方法的声明  当然也有返回值类型了   public  (static)  类型   方法名()
回复 使用道具 举报
函数前面能不加void的只有构造函数了,为什么呢,因为它的确不需要,哪怕是无返回值的void也是这样,构造函数存在目的就是为了创建对象的。
而其他普通函数包括主函数不加返回值成吗,这个必须不成,因为我们定义一个函数时我们希望的是通过调用这个函数来完成我们对数据的操作,操作完后你总得吧完工了的数据再还给我吧,就像你给别人材料让别人帮你做成一个东西一样,完事后别人总得给你做好的东西吧,而这个方法名呢,你可以与类名相同(极度不赞成这种设置和类名相同的方法名)。
class Ceshi{
       
        public Ceshi(){
                                System.out.println("构造函数哦");
                }
               
        public void Ceshi(){
                                System.out.println("与类名同名的函数哦");
                }
                public static void main(String []args){
                                        Ceshi c =new Ceshi();
                                        c.Ceshi();
                        }
        这段代码是能编译并执行的哦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马