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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

昨天晚上才看到视频函数这里
下面这段,根据视频上的Demo演示,第二种用public static void  就报错。说需要int,  找到void
public class GetResult{
        public static void main(String[] args){
                int x=getResult(4);
                System.out.println("x="+x);
        }
                /*
        public static int getResult(int sum){
                return sum*3+5;
                }
                */
        public static void getResult(int sum){
                System.out.println(sum*3+5);
        }
}


求破

点评

只要确实是自己学习中的困惑,大胆问!比那些学了半桶水却热衷水帖的不知道好多少倍。送上相当于2技术分的黑马币以资鼓励!  发表于 2014-9-3 12:46

评分

参与人数 1黑马币 +12 收起 理由
fantacyleo + 12

查看全部评分

15 个回复

倒序浏览
你函数与返回值,是int型,所以你也要用int型来接受数据。不能void
回复 使用道具 举报
public static void main(String args[])
        {
               
                int x =4;
                getResult(x);
                System.out.println("x="+x);
               
        }


public static void main(String args[])
        {
               
                int x =getResult(4);
               
                System.out.println("x="+x);
               
        }
楼主,这两个main函数有区别么?其实这道题的问题在于你为X赋值的问题上,前一种是先为X赋值,再getResult,而后一种的写法是先getResult,用getResult的结果为X赋值。问题到这就明白了,你先getResult再把结果赋给X,而void方法是无返回值,无值返回怎么能给X赋上值呢?X没有赋上值当然会报错
回复 使用道具 举报
___瘦不了 发表于 2014-9-3 10:05
public static void main(String args[])
        {
               

谢谢谢谢,还几遍才看明白  谢谢啊
回复 使用道具 举报
___瘦不了 发表于 2014-9-3 10:05
public static void main(String args[])
        {
               

很好的回答啊
回复 使用道具 举报
变量声名后必须要初始化才能使用,如果未初始化就使用编译器会报错,除非不使用可以不给他赋值,但是这样没有意义。你的第二个方法返回值是空不是给x赋值,直接把结果打印了,这里面你不能使用x来接收一个void的值,X未初始化不能使用他来打印
回复 使用道具 举报
本帖最后由 lfsfxyzljhm 于 2014-9-3 10:49 编辑

这个问题详细的给你解释一下,你在主函数中调用getResult(sum)方法,并把它赋值给你定义的一个整型变量,表明,你调用的这个函数肯定有返回值,而且是整型类型。修改的方法如下:将主函数中的代码修改如下所示即可:
      {
        getResult(3);
      }
回复 使用道具 举报
lfsfxyzljhm 发表于 2014-9-3 10:47
这个问题详细的给你解释一下,你在主函数中调用getResult(sum)方法,并把它赋值给你定义的一个整型变量,表 ...

谢谢啊  貌似就是这样的啊   会做了,但比较愚钝,其实我还没理解 没懂
回复 使用道具 举报
28了还能学吗 发表于 2014-9-3 10:22
谢谢谢谢,还几遍才看明白  谢谢啊

不客气,题目因人而异,没有一定的难易,希望楼主有不会的就发帖问,不要因为自己觉得简单就不好意思问,把不懂的弄懂了才是关键,我们都是进黑马的,互相鼓励,互相帮助,加油
回复 使用道具 举报
___瘦不了 发表于 2014-9-3 11:22
不客气,题目因人而异,没有一定的难易,希望楼主有不会的就发帖问,不要因为自己觉得简单就不好意思问, ...

非常感谢,听你这么说,有问题我就大胆的问了
回复 使用道具 举报
28了还能学吗 发表于 2014-9-3 11:06
谢谢啊  貌似就是这样的啊   会做了,但比较愚钝,其实我还没理解 没懂

不客气,以后可能还是同学呢。
回复 使用道具 举报
两个函数的名字和参数列表都相同,但是返回值类型不一样,在编译时就会出错,因为系统不知道你要调用哪一个方法.....好好看一下方法重载那一部分
回复 使用道具 举报
  int x=getResult(4);这句是赋值操作,而后面的函数没有返回值,肯定不能赋值啊。
说下你下面两个函数的区别。第一个的功能是,你给它一个num,它处理完之后,还给你一个int型数据的结果,可以被int型变量接收。第二个的功能是,你给它一个num,它处理完之后,直接将结果打印,没有返回值。
回复 使用道具 举报
public static void main(String args[])返回值是int不是void
回复 使用道具 举报
方法没有返回结果时,怎么给接受它的变量赋值呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马