黑马程序员技术交流社区

标题: 函数名前加void和不加void的区别? [打印本页]

作者: 王洪涛    时间: 2014-8-2 22:21
标题: 函数名前加void和不加void的区别?
函数名前加void和不加void的区别?(函数名于类名相同)

作者: 烟海    时间: 2014-8-2 22:27
加void是返回值为空。。。。
不加void ,也不加别的类型,不会报错?
作者: 止询初衷    时间: 2014-8-2 22:27
一个是构造函数。一个是普通方法
作者: 南柯一梦    时间: 2014-8-2 23:04
函数必须有返回值类型,加void
作者: KID灬熊孩子    时间: 2014-8-2 23:06
加void的函数返回值为空
不加void要么加别的返回值类型 ,要么是构造方法  吧
作者: 暗影    时间: 2014-8-2 23:17
加void是不用返回值,不加的时候是构造方法
作者: 無訫    时间: 2014-8-2 23:20
我搞晕了!原来我是这么差劲啊!
作者: David.L    时间: 2014-8-2 23:42
函数名与类名相同,就应该是构造函数,构造函数是不需要返回值的,而且void也代表不需要返回值,加了void就是画蛇添足吧。
还有就是直接写代码测试下~
作者: 席杰    时间: 2014-8-2 23:57
不加void,需要返回值,不加就不需要。
作者: s_gd    时间: 2014-8-3 00:13
void不用返回值,其他的要返回对应的返回值,
比如int类型的就要返回int
作者: 梧桐树下    时间: 2014-8-3 00:13
Void是没有具体返回值
作者: 梧桐树下    时间: 2014-8-3 00:15
不加void就必须加一个返回值类型像int.string
作者: 罗超8849    时间: 2014-8-3 00:16
返回值的区别,是否需要返回值的原因吧

作者: 王洪涛    时间: 2014-8-3 00:22
烟海 发表于 2014-8-2 22:27
加void是返回值为空。。。。
不加void ,也不加别的类型,不会报错?

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

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

前面两句都对的。。
不加void就是说返回值不为空,就要求有返回值。。比如int double 等等各种类型。。
默认是没有返回值什么的。。根据自己需求,如果没有返回值,则为void ,有返回值,则在这儿写上返回值的类型。。
作者: 晓风    时间: 2014-8-3 10:03
普通方法要带有返回值类型的,如果方法前没有返回值类型,且方法名与类名不一样,则会编译错误。构造方法绝对没有返回值,且与类名相同,所有没有返回值类型,并方法名与类名相同的方法就是构造函数。
作者: liqi    时间: 2014-8-3 10:12
Java中类中的声明,除了构造函数,都得有类型,变量 声明:  类型   对象=。。。
方法的声明  当然也有返回值类型了   public  (static)  类型   方法名()
作者: 怀念黑海岸    时间: 2014-8-3 10:26
函数前面能不加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();
                        }
        这段代码是能编译并执行的哦。




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