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("\n\n");//换行 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]+"\t"); 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]+"\t"); 48 } 49 } 50 // public void sayHello(String[] args){//方法⑤ 51 // for(int i=0;i<args.length;i++){ 52 // System.out.print(args[i]+"\t"); 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
时间: 2024-10-12 03:49:40