当前位置:   article > 正文

Java可变参数(举例说明)_java中可变参数的例子

java中可变参数的例子

 可变参数的作用:提供了一个方法,参数的个数是可变的 ,解决了部分方法的重载问题。(不理解重载也没关系),下面举例说明可变参数:

  1. public class Test{
  2. public static void main(String[] args){
  3. method01(10);
  4. }
  5. public static void method01(int num){
  6. System.out.println("1");
  7. }
  8. }
  9. //很显然该程序的输出结果为:1

如果你想在上面这段程序的method01()方法中传入多个实参,比如将method01(10);改成method01(10,20);显然这会引起错误,但是可变参数能解决这个问题(其实方法重载也可以,这里只讨论可变参数),请看这个例子:

  1. public class Test1{
  2. public static void main(String[] args){
  3. method01();
  4. method01(10);
  5. method01(10,20);
  6. method01(10,20,30);
  7. }
  8. public static void method01(int...num){
  9. //这里的...用来说明这是一个可变参数,格式为:方法名(数据类型...形参名),下面3条注释是例子
  10. //int...num1
  11. //double...num2
  12. //boolean...num3
  13. System.out.println("1");
  14. }
  15. }
  16. //程序的输出结果为:
  17. //1
  18. //1
  19. //1
  20. //1

因为参数是可变的无论method01()里传入多少个int型实参,即便是没有传入实参,或者传入n多个实参,它都能顺利接受并执行,上面的程序调用了四次method01()方法,所以输出了四个1。

接收的多个参数方法内部如何处理?

其实方法的内部对可变参数的处理跟数组是一样的。举个例子:

  1. public class TestArray12{
  2. public static void main(String[] args){
  3. method01(30,40,50,60,70);
  4. }
  5. public static void method01(int...num){
  6. System.out.println("1");
  7. for(int i:num){//增强for循环遍历
  8. System.out.print(i+"\t");
  9. }
  10. }
  11. }
  12. //运行结果:
  13. //1
  14. //30 40 50 60 70

可变参数和其他数据一起作为形参的时候,可变参数一定要放在最后。

请看例子:

  1. public class Test2{
  2. public static void main(String[] args){
  3. method01(20,30,40);
  4. }
  5. public static void method01(int...num,int num2){
  6. System.out.println("1");
  7. for(int i:num){
  8. System.out.print(i+"\t");
  9. }
  10. System.out.println();
  11. System.out.println(num2);
  12. }
  13. }
  14. //这段程序是错误的,因为20,30,40都被前面的可变参数接收,形参num2没有收到数值,编译不通过
  15. //将(int...num,int num2)改为(int num2,int...num)即可,把可变参数放后面。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/156041
推荐阅读
相关标签
  

闽ICP备14008679号