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循环也可以看出来。

  • 相关阅读:
    EPANET头文件解读系列4——EPANET2.H
    EPANET头文件解读系列3——TOOLKIT.H
    EPANET头文件解读系列2——ENUMSTXT.H
    EPANET头文件解读系列1——TEXT.H
    ENUMSTXT.H中的指针数组
    main函数的参数
    函数指针与指针函数
    FMDB源码阅读
    17个提升iOS开发效率的必用工具
    UIKit性能调优实战讲解
  • 原文地址:https://www.cnblogs.com/lijiehua/p/8177900.html
Copyright © 2011-2022 走看看