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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘焘 初级黑马   /  2012-6-11 10:57  /  1759 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘焘 于 2012-6-11 12:18 编辑

才开始学习Java,看视频看到定义函数了。
返回值类型什么时候才用void,什么时候用其它的类型?视频里讲的我不是很明白

5 个回复

正序浏览
当函数定义的功能有结果,返回值类型就是用该结果的数据类型,如果没有结果,比如直接打印了,返回值类型就为void
例:计算2、4、6这三个数分别乘以10加20的值
//这个函数定义的功能是在对整数做运算,那结果就是整数类型,所以返回值类型就是int
class test1
{
        public static void main(String[] args)
        {       
                int a=getresult(2);
                System.out.println("当为2时计算得"+a);
                int b=getresult(4);
                System.out.println("当为4时计算得"+b);
                int c=getresult(6);
                System.out.println("当为6时计算得"+c);
               
        }
        public static int getresult (int num)
                {
                        return  num*10+20;
                }

}

用void 的情况
例:
class test2
{
        public static void main(String[] args)
        {       
                getresult("hello");
               
        }
        public static void getresult (String a)
                {
                        System.out.println(a+" "+"java");
                }

}
分析:函数getresult的执行语句是直接打印出了一堆字符串,而没有返回值,所以不存在返回值类型,这时候返回值类型应用void,而不能写成其他的具体数据类型,否则执行时会报缺少返回语句的错。
反过来说:当函数的返回值是void类型是,函数的return语句可以省略不写。


回复 使用道具 举报
这个,void英文是空的意思,也就是当你的方法不需要返回值的时候,用这个,比如老师用过的:
//简化版的打印,也就是不需要再输入一长串System.out.println(); 只需要输入sop();就行了
public void sop(String str) {
     System.out.println(str);
}

有返回值的例子的话,从API文档里给你找个简单的吧:
比如String方法里面有个length,for循环的时候经常用,你应该看过吧~
API中说明如下:
length
public int length()返回此字符串的长度。长度等于字符串中 16 位 Unicode 字符数。

指定者:
接口 CharSequence 中的 length
返回:
此对象表示的字符序列的长度。

这个length返回的方法就是,int型,也就是字符序列的长度~

什么时候用呢~也就是你需要的时候才用啦,一般简单普通的方法我们都用void的方法就可以了。
回复 使用道具 举报
定义方法时,如果你在这个方法中不需要返回值,即只在里面进行一些数据的操作,那么返回值类型即为void。

如在一个Person类中定义一个说的方法:


void say()
{
System.out.println("Hello World")
}
这个方法就不需要返回值,所以可以定义为void。


如果定义一个方法时,需要通过此方法返回一个确定的值,那就看经过此方法后,需要返回的是什么类型的值就用什么返回类型,
比如一个加法运算方法:
int add(int a,int b )
{
int sum=0;
sum = a+b;
return sum;
}
回复 使用道具 举报
一个类中的方法有无返回值以及需要什么类型的返回值需要根据情况而定:
1、类的构造方法,不写返回值类型。
如:public A()
{
}
2、类方法中有返回值类型,但返回的类型不同。
  public void AA()  //无返回类型
   {
    }
   public int AA()   //返回int型
   {
       return 0;  //这里的返回值也可以不为0,是你想要返回的值,但必须为int型
   }
  public double AA()  //返回double类型
   {
       return 0.0;   //同上。
   }
回复 使用道具 举报
你要明确你这个方法的作用,void是指方法没有返回值,比如有一个方法是通过两个数相加得到和
public static void addNum(int a, int b)
{
      System.out.println(a+b);  //这里系统打印了a+b的值 但是该方法没有返回值 就是说你不能用一个数去接受a+b的值 再进行其他操作
}

public static int  addNum(int a, int b)
{
      return a+b ;//这里该方法返回了a+b的值 你在调用该方法的时候就要用一个和返回值类型相同的去接受   比如 int result = addNum(3 ,2);  然后你还可以对该result进行其他操作
}


确定一个方法有没有返回值,就是你要明确你接下来的操作会不会再用到该方法的返回值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马