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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王敏NO.09 中级黑马   /  2012-5-3 07:22  /  1655 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.         public static void main(Sting[] args)
  2.         {
  3.                
  4.         }
  5.         public static int add(int x,int... args)
  6.         {
  7.        
  8.         }
复制代码
add的方法中args是如何定义的呢?可以用其他名称吗?

3 个回复

倒序浏览
可以的,其实代码中int... args的含义是:有多个int型的参数,而个数不确定,这多个参数被隐含地包装成一个数组,数组名就是args。args可以看做就是一个形式参数的变量名称,是可以随你修改的,只要类型不变就ok。
另外多说一点,在定义函数时,参数列表中涉及到参数类型和参数名称,参数名称都是可以改动的。举两个例子你就清楚了。
例1:毕老师视频中曾经说过,main方法中的args可以写成其他的变量名,如rgs。这是不受影响的,因为,变量类型依然是String[]。
例2:我们都覆写过equals方法,Object中的equals方法是这样定义的:public boolean equals(Object obj){}这里的参数类型是Object,不能改动,而参数名称obj可以随便干改动,不受影响(只要在方法体中也将参数名称做一致性变动即可)。不知是否讲解清楚了?
回复 使用道具 举报
这里的可变参数args。只是一个名称而已。只是定义了,可以去传入个参数,可以根据你自己的想法去传入多个参数,而在这个方法体中,则是以数组的方式去接收的。
比如:
  1. public static void main(String[] args){
  2.                 argsTest(1, 2);
  3.                 argsTest(1, 2,3);
  4.                 argsTest(1, 2,3,4,5,6,7);
  5.         }
  6.        
  7.         public static void argsTest(int n,int ... args){
  8.                
  9.                 for(int i : args){
  10.                         System.out.print(i);
  11.                 }
  12.                 System.out.println();
  13.                
  14.         }
复制代码
就像上面的一样,你可以去根据你的需要去传入多个参数。至于这个名称,它只是一个代号而已。
在内存中就是一个形式参数,在这个方法执行结束后就被释放了的。所以这个名称是可以自己去定义的。
但是前面的数据类型是不能乱来的,毕竟你要告诉它你传入的参数的类型是什么呢。
好了!不知道能不能帮上你!谢谢!
回复 使用道具 举报
可以的  不过你的可变参数要在你传的参数中放在最后的位置
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马