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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李有 中级黑马   /  2012-11-27 10:57  /  1589 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

返回值类型为void到底和没有返回值有什么区别啊?

3 个回复

倒序浏览
本帖最后由 李小锋 于 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
返回值 void 就是无返回值
要是问的是方法中连 void 都不写的话,那叫构造方法
回复 使用道具 举报
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();  //方法必须显示调用
   }

}

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马