zoukankan      html  css  js  c++  java
  • 可变个数形参

     1 package com.cnblogs.java;
     2 /*
     3  * 可变个数形参的使用方法
     4  * 1.格式:对于方法的形参,数据类型 ... 形参名
     5  * 2.可变个数的形参的方法与同名的方法之间构成重载
     6  * 3.可变个数的形参方法在调用时,可以有从0到多个参数
     7  * 4.使用可变个数形参的方法与方法的形参是数组的使用方法一致。
     8  * 一致到认为方法③和⑤是同一个方法的地步,
     9  * 但是方法三是可变个数形参,能包括方法①和②,①②注释掉则自动调用③
    10  * 5.若一个方法中存在可变个数形参,则可变个数形参一定要声明在最后如:方法④
    11  * 6.在一个方法中最多声明一个可变个数形参
    12  */
    13 public class TestKeBian {
    14     public static void main(String[] args) {
    15         TestKeBian kb=new TestKeBian();
    16         kb.sayHello();
    17         System.out.println();
    18         kb.sayHello("@@@");
    19         System.out.println();
    20         //kb.sayHello(new String[] {"###","$$$","%%%"});//用于数组声明方法的调用
    21         kb.sayHello("###","$$$","%%%");//可用于可变形参方法的调用,不可用于数组声明方法
    22         
    23         System.out.println("
    
    ");//换行
    24         System.out.println(kb.getSum(1, 5));
    25         System.out.println(kb.getSum(1, 3, 5));
    26         System.out.println(kb.getSum(1,2,3,4,5,6));
    27     }
    28     //以下的四个方法之间构成重载
    29 /*    public void sayHello(){//方法①
    30         System.out.println("Hello World!");
    31     }
    32     public void sayHello(String str){//方法②
    33         System.out.println("Hello"+str);
    34     }*/
    35     //定义可变个数形参String...args
    36     //这种声明方法虽与以上两个方法重载,但也包括以上两个方法
    37     //若以上两个方法注释掉,则自动调用此方法来完成输出操作
    38     public void sayHello(String...args){//方法③
    39         System.out.println("调用了可变个数形参:");
    40         for(int i=0;i<args.length;i++){
    41             System.out.print(args[i]+"	");
    42         }
    43     }
    44     public void sayHello(int t,String...args){//方法④
    45         System.out.println(t);
    46         for(int i=0;i<args.length;i++){
    47             System.out.print(args[i]+"	");
    48         }
    49     }
    50 //    public void sayHello(String[] args){//方法⑤
    51 //        for(int i=0;i<args.length;i++){
    52 //            System.out.print(args[i]+"	");
    53 //        }
    54 //    }
    55 //使用可变个数形参的方法可以解决计算几个数和的问题
    56     /*public int getSum(int i,int j){
    57         return i+j;
    58     }
    59     public int getSum(int i,int j,int k){
    60         return i+j+k;
    61     }*/
    62     //使用可变个数形参可以计算n个数的和,就可以省略以上两个方法
    63     public int getSum(int...arr){
    64         System.out.println("调用了");
    65         int sum=0;
    66         for(int i=0;i<arr.length;i++){
    67             sum+=arr[i];
    68         }
    69         return sum;
    70     }
    71 }

    运行结果:

    如果C#要实现这个可变个数形参,则要用到“params”这个关键字

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace ConsoleApplication2
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Program p = new Program();
    14             Console.WriteLine(p.getSum(1,2,3,4,5,5));
    15             Console.ReadKey();
    16         }
    17         /// <summary>
    18         /// 可变个数形参,用params来实现
    19         /// </summary>
    20         /// <param name="arr"></param>
    21         /// <returns></returns>
    22         public int getSum(params int[] arr) { 
    23             int sum=0;
    24         for(int i=0;i<arr.Length;i++) 
    25          {
    26             sum+=arr[i];
    27          }
    28         return sum;
    29         }
    30     }
    31 }

    运行结果:

    20

  • 相关阅读:
    南阳oj 82 迷宫寻宝(一)
    杭电 oj 1016 Prime Ring Problem
    杭电 oj 3350 #define is unsafe
    南阳oj 366 全排列 D的小L
    南阳oj 32 组合数
    部分和问题 南阳oj 1058
    HNUSTOJ 1516:Loky的烦恼
    HDU-1874 畅通工程续
    T-聊天止于呵呵
    P-残缺的棋盘
  • 原文地址:https://www.cnblogs.com/yunqing/p/4776342.html
Copyright © 2011-2022 走看看