黑马程序员技术交流社区

标题: void 和没有返回值类型的区别? [打印本页]

作者: 刘笑    时间: 2012-6-18 17:02
标题: void 和没有返回值类型的区别?
   最近在学习构造函数的时候看到构造函数没有返回值,那我就想既然没有返回值,能不能用void修饰呢?结果一查也不能用void修饰,这是为什么?返回值类型为void到底和没有返回值有什么区别啊?别跟我说什么规定之类的啊,我想知道为什么有这样的规定,最好能举个例子,谢谢!
作者: 张頔    时间: 2012-6-18 17:11
void  是用来描述方法返回值的吧,和函数没有关系吧
作者: 王晓新    时间: 2012-6-18 17:15
void不是没有返回值,而是返回的为空。void也是一个返回类型,只不过一般在void类型的方法里面不写return而已。
作者: 胡大强    时间: 2012-6-18 17:18
本帖最后由 胡大强 于 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();       //方法必须显式调用
   }

}
作者: 余清兰    时间: 2012-6-18 17:43
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]+"]");
                }
        }
}

构造函数是用于给对象初始化的,对象在堆内存中一建立,构造函数里的值也随着加载进去赋给了对象中的成员,给对象进行了实例化。它不需要有返回值,相当于是返回了一个对象。
作者: 陆强强    时间: 2012-6-18 17:59
构造函数你就把他当成主函数一样固定格式好了,没有修饰,函数名和类名一样。
VOID返回值是空,平时可以不加,但如果函数是循环语句结尾最后就必须加上一句return "";不然编译报错




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