• 2018/01/02java基础学习——可变数量的参数


    当调用的方法名一样,方法的参数类型一样,只是传递参数的个数不一样时,就可以采用可变数量的参数,只需要设计一个方法,代码案例如下:

    同一package下有以下两个类。

    Hero.java源文件:

    1 public class Hero {
    2     String name; //姓名
    3     float hp; //血量
    4     float armor; //护甲
    5     int moveSpeed; //移动速度
    6 }

    ADHero.java源文件:

     1 public class ADHero extends Hero {
     2     public void attack() {
     3         System.out.println(name + " 进行了一次攻击 ,但是不确定打中谁了");
     4     }    
     5       /*方法一:可变数量的参数*/
     6     public void attack(Hero...sb) {//...的含义是可变参数,其本质是数组
     7         for (int i = 0; i < sb.length; i++) {
     8             System.out.println(name + " 攻击了 " + sb[i].name);
     9         }
    10     }
    11    /*方法二:加强for循环*/
    12 //  public void attack(Hero...sb) {
    13 //      for (Hero hero : sb) {/*方法二上面第7行的for循环亦可用这种加强型for循环进行替代*/
    14 //            System.out.println(name + " 攻击了 " + hero.name);
    15 //        } 
    16 //  }
    17     public static void main(String[] args) {
    18         ADHero bh = new ADHero();
    19         bh.name = "赏金猎人";
    20  
    21         Hero h1 = new Hero();
    22         h1.name = "盖伦";
    23         Hero h2 = new Hero();
    24         h2.name = "提莫";
    25  
    26         bh.attack();
    27         bh.attack(h1, h2);
    28     }
    29  
    30 }

     其中,ADHero类继承了Hero类,在ADHero类中,主方法调用了attack()方法,为了减少方法的重复率就可以如上面那样设计。其中可变数量的参数的本质是数组,这由增强for循环也可以看出来。

  • 相关阅读:
    前端/html5效果收藏
    Fiddler 网页采集抓包利器
    Es6 类class的关键 super、static、constructor、new.target
    js 倒计时毫秒级别显示
    雅虎34条军规
    javascript 异步请求封装成同步请求
    微信小程序 base64图片在canvas上画图
    chrome inspect 远程调试H5
    webpack 打包调试
    微信小程序云函数 添加数据到数据库
  • 原文地址:https://www.cnblogs.com/lijiehua/p/8177900.html
Copyright © 2020-2023  润新知