zoukankan      html  css  js  c++  java
  • 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循环也可以看出来。

  • 相关阅读:
    mysql 5.6
    mysql5.7 二进制包安装
    centos 6 编译安装httpd-2.4
    mysql 5.5源码包安装
    BZOJ4945 & 洛谷3825 & UOJ317:[NOI2017]游戏——题解
    BZOJ4943 & 洛谷3823 & UOJ315:[NOI2017]蚯蚓排队——题解
    BZOJ3435 & 洛谷3920 & UOJ55:[WC2014]紫荆花之恋
    BZOJ5343 & 洛谷4602 & LOJ2555:[CTSC2018]混合果汁——题解
    真·APIO2018滚粗记
    BZOJ4518:[SDOI2016]征途——题解
  • 原文地址:https://www.cnblogs.com/lijiehua/p/8177900.html
Copyright © 2011-2022 走看看