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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余清兰 中级黑马   /  2012-6-8 13:57  /  1499 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 余清兰 于 2012-6-8 14:56 编辑

class OverLoad
{
        public static void main(String[] args)
        {
                int x=ride(2,3);
                System.out.println("两个整数之积等于"+x);
                int y=ride();
                System.out.println("三个整数之积等于"+y);
        }


        //定义一个函数,求两个整数之积。
        public static int ride(int a,int b)
        {
                return a*b;
        }

        //定义一个函数,求三个整数之积。
        public static int ride(int a,int b,int c)
        {
                 return ride(2,3,4);
        }
}


提示int y=ride();这个写法错了,我是刚自学的,请问错在哪了,求详解,原因越详细越好,谢谢

评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
本帖最后由 唐志兵 于 2012-6-8 14:04 编辑
  1. class OverLoad
  2. {
  3.          public static void main(String[] args)
  4.          {
  5.                  int x=ride(2,3);   //你这里使用了函数的重载
  6.                  System.out.println("两个整数之积等于"+x);
  7.                  int y=ride();     //你只有两个重载函数,一个是有两个参数的,一个是有三个参数的,
  8.                                    /*那为什么你这里写的这个是没有参数的呢? 如果你还需要一个没有参数的
  9.                                      函数的话你还得去定义一个,   要不然你就加上三个参数  改成 int y=ride(4,5,6);就可以了。      */   
  10.                  System.out.println("三个整数之积等于"+y);
  11.          }


  12.          //定义一个函数,求两个整数之积。
  13.          public static int ride(int a,int b)
  14.          {
  15.                  return a*b;
  16.          }

  17.          //定义一个函数,求三个整数之积。
  18.          public static int ride(int a,int b,int c)
  19.          {
  20.                   return ride(2,3,4);   //还有这里  ,这个你要求是 返回三个参数的乘积,那么这里应该是 retrun(a*b*c);
  21.          }
  22. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
兄弟.你这两个重写的ride函数,都是有参数的函数.
就你这个两个方法。

调用ride的时候,传两个参数,就是调用第一个函数。传3个参数就是调用第二个函数。

这里免费送上一个知识点。
jdk1.5的新特性,可变参数。
public static int ride(int ... a)
这里你在调用的时候,随便往里面传几个都可以
回复 使用道具 举报
  1. 可变参数的例子。
  2.         public static void main(String[] args) throws Exception {

  3.                 System.out.println(ride(2,6,4));
  4.                 System.out.println(ride(2,6,4,2));
  5.         }

  6.         public static int ride(int ... a) {
  7.                 int num = 1;
  8.                 for(int i : a)
  9.                 {
  10.                         num *= i;
  11.                 }
  12.                 return num;
  13.         }
复制代码
回复 使用道具 举报
class Test4
{
        public static void main(String[] args)
        {
                int x=ride(2,3);
                System.out.println("两个整数之积等于"+x);
               // int y=ride();//这个函数没有定义啊 编译时候要出错的
                           int y=ride(2,3,4);//传参,传三个整数进去 这样就对了
                System.out.println("三个整数之积等于"+y);
        }

               
        
        public static int ride(int a,int b)
        {
                return a*b;
        }


        public static int ride(int a,int b,int c)
        {
                 //return ride(2,3,4);这句也不对啊
                                 //想求三个数的积和两个数的积类似 这样写:
                                 
                                return a*b*c;
        }
}
回复 使用道具 举报
唐志兵 发表于 2012-6-8 14:01

谢谢,重新试了下,可以了
class OverLoad
{
        public static void main(String[] args)
        {
                int x=ride(2,3);
                System.out.println("两个整数之积等于"+x);
                int y=ride(2,3,4);
                System.out.println("三个整数之积等于"+y);
        }


        //定义一个函数,求两个整数之积。
        public static int ride(int a,int b)
        {
                return a*b;
        }

        //定义一个函数,求三个整数之积。
        public static int ride(int a,int b,int c)
        {
                 return ride(a,b)*c;
        }
}
回复 使用道具 举报
class OverLoad
{
        public static void main(String[] args)
        {
                int x=ride(2,3);
                System.out.println("两个整数之积等于"+x);
                int y=ride();                           
              System.out.println("三个整数之积等于"+y);
        }


        //定义一个函数,求两个整数之积。
        public static int ride(int a,int b)
        {
                return a*b;
        }

        //定义一个函数,求三个整数之积。
        public static int ride(int a,int b,int c)
        {
                 return ride(2,3,4);  
        }  
}
我向楼主提供两种修改方法:
一:首先return ride(2,3,4);这样写是不正确的,没有任何意义。应该是return  a*b*c  ;
      
其次int();缺少实际参数。可以改成int(2,3,4);小括号里面的数值可以随便取
二:可以改成以下,保留rid();  我修改的跟你不一样的我用别的烟色标示。

class  Demo
{
  public static void main(String[] args)
{
         int x=ride(2,3);
         System.out.println("两个整数之积等于"+x);
         ride();                           
              
    }

//定义一个函数,求两个整数之积。
   
public static int ride(int a,int b)
    {
         return a*b;
    }

     //定义一个函数,求三个整数之积。
      public static void  ride()    //由int改成了void,这个是关键点啊。因为我把System.out.println("三个整数之积等于"+y);
                                                // 由上面移到了下面。结果是一个不确定的类型,必须用void。
     {
         int  a=1,b=2,c=3;
   int  y=  a+b+c;
         System.out.println("三个整数之积等于"+y);

     }  
}




评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1 有点小错误再仔细点就更好了。.

查看全部评分

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