黑马程序员技术交流社区

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

作者: 李有    时间: 2012-11-27 10:57
标题: void 和没有返回值类型的区别?
返回值类型为void到底和没有返回值有什么区别啊?
作者: 李小锋    时间: 2012-11-27 11:37
本帖最后由 李小锋 于 2012-11-27 11:44 编辑

void指的是方法,一个方法只是完成某种功能计算时并不需要返回值。而构造函数作用是在类初始化的同时初始化一些变量或参数,不需要返回值; 比如:
  1. class A{
  2. int a;
  3. int b;
  4. //构造函数
  5. public A(int a,int b){
  6. this.a = a;
  7. this.b = b;
  8. }
  9. //void 方法,只是完成计算
  10. void plus(){
  11. System.out.println(a+b);
  12. }
  13. }
复制代码

作者: 马海保    时间: 2012-11-27 13:35
返回值 void 就是无返回值
要是问的是方法中连 void 都不写的话,那叫构造方法
作者: 聽聽我dē❤    时间: 2012-11-27 14:40
Java中创建对象的方法就是使new 关键字调用构造函数来创建对象(另一个创建对象的方法是clone()函数,他的返回值为Object),所以可以理解为构造函数的返回值是一个对象。
返回值类型为void才是真正的无返回值函数。

构造函数是使用new关键字来调用的。
其它函数是用对象名或类名加.的方式来调用的。
构造函数作用是在类初始化的同时初始化一些变量或参数,不需要返回值;
而void指的是方法,当一个方法只是完成某种功能计算时并不需要返回值。

比如说
class A{
int a;
int b;
//构造函数
public A(int a,int b){
    this.a = a;
    this.b = b;
}
//void 方法,只是完成计算
void plus(){
    System.out.println(a+b);
}
}

那么为什么构造函数没有返回值呢,主要是为了区分构造函数和其它方法。其实,你可以尝试在你的构造函数前加上void,你会发现编译可以通过,但是编译器把它认为是方法,而不是构造函数,当然也无法在new的时候自动调用。
   下面有一个例子,你可以测试看看:
public class MyPrint {
   public void MyPrint(){  //这是一个方法,如果去掉void就是构造函数
       System.out.println("method");
   }
   
   public test(){ //提示错误,方法声明错误,必须加上返回值
      
   }
   public static void main(String[] args){
       MyPrint mp=new MyPrint();  //构造函数自动调用
       mp.MyPrint();  //方法必须显示调用
   }

}




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