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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘笑 中级黑马   /  2012-6-18 17:02  /  7854 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   最近在学习构造函数的时候看到构造函数没有返回值,那我就想既然没有返回值,能不能用void修饰呢?结果一查也不能用void修饰,这是为什么?返回值类型为void到底和没有返回值有什么区别啊?别跟我说什么规定之类的啊,我想知道为什么有这样的规定,最好能举个例子,谢谢!

5 个回复

倒序浏览
void  是用来描述方法返回值的吧,和函数没有关系吧
回复 使用道具 举报
void不是没有返回值,而是返回的为空。void也是一个返回类型,只不过一般在void类型的方法里面不写return而已。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 胡大强 于 2012-6-18 17:26 编辑

1.构造函数作用是在类初始化的同时初始化一些变量或参数,不需要返回值。

2.构造函数:函数名与类名相同
                   没有返回值类型,void也没有
                   不能写return语句

3.对象一建立就会调用与之对应的构造函数。

4.当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数
   类中自定义了构造函数后,默认的构造函数就没有了。

5.  void 表示的是返回空,不是它没有返回值~!这两者要分清~!

6.如果你在构造函数前面加上void,你会发现,其实编译它可以通过,只是编译器把它认为是方法,而不是构造函数,当然也无法在new的时候自动调用。
看例子:
public class Test{
   public void Test(){      //这是一个方法,如果写成Test(){ System.out.println("java");} 就是构造函数
       System.out.println("java");
   }
   
   public test(){     //提示错误,方法声明错误,必须加上返回值
      
   }
   public static void main(String[] args){
       Test t=new Test();      //创建对象时,构造函数自动调用
       t.Test();       //方法必须显式调用
   }

}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
void是个返回值为空的类型,当你不需要把结果返回给调用者时,就定义个void类型的返回值
例:
class ArrayDemo
{
        public static void main(String[] args)
        {
                int[] arr = {2,5,4,7,9,8};
                PrintArray(arr);
               
        }
        public static void PrintArray(int [] arr)//这里是直接打印了数组,没有结果返回给调用者,所以也不用在这个方法里写return       
{
                System.out.print("[");
                for (int x=0; x<arr.length; x++)
                {
                        if(x!=arr.length-1)
                                System.out.print(arr[x]+",");
                        else
                                System.out.println(arr[x]+"]");
                }
        }
}

构造函数是用于给对象初始化的,对象在堆内存中一建立,构造函数里的值也随着加载进去赋给了对象中的成员,给对象进行了实例化。它不需要有返回值,相当于是返回了一个对象。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
构造函数你就把他当成主函数一样固定格式好了,没有修饰,函数名和类名一样。
VOID返回值是空,平时可以不加,但如果函数是循环语句结尾最后就必须加上一句return "";不然编译报错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马