• java可变参数长度


    一:

    在python中 有可变参数*args和万能参数**args参数分别为列表和字典。在java中也有类似的可变参数列表。不过传递进去的是可变参数数组。

     1 package com.company;
     2 
     3 public class Len_Chan_Args {
     4     public static void main(String[] args){
     5         Chan_Args chang=new Chan_Args();
     6         chang.chan_Args("tom","jack");
     7     }
     8 }
     9 
    10 class  Chan_Args{
    11     public void chan_Args(String x,String y){
    12         System.out.printf("the string is %s %s",x,y);
    13 
    14     }
    15 }

     其中printf()就是可变参数列表方法。我们看下源码;

    可变参数的语法形式:object ... args用三个句点来表示这个方法接收的参数是可变。且可变参数位置未其他形参的最后。前一个为数据的类型,后一个args为参数的数组列表。

    实际上object ... args表示object数组object[],当我们填写基本的整型的时候,会自动装箱传入Intger对象。在传入参数的时候,自动扫描字符串format,将其中的第i格式的说明符和object数组args[i]对应起来。

     1 public class Len_Chan_Args {
     2     public static void main(String[] args){
     3         Chan_Args chang=new Chan_Args();
     4         chang.chan_Args("tom","jack");
     5         System.out.printf("max number is %f",chang.max(1,2,3,5));
     6     }
     7 }
     8 
     9 class  Chan_Args{
    10     public void chan_Args(String x,String y){
    11         System.out.printf("the string is %s %s
    ",x,y);
    12 
    13     }
    14     public  double max(double ... args){
    15         double largest=Double.MIN_VALUE;
    16         for (double x:args){
    17             if(x>largest){
    18                 largest=x;
    19             }
    20         }
    21         return largest;
    22     }
    23 }

    输出:

    其中传入可变参数,args为数组。我们可以对其进行遍历。其中Double.MIN_VALUE为常量。为double类型的最小值。

     type ...  args可以写成type[] args形式。其中我们熟悉的main函数也可以这么写:

    1 public class Len_Chan_Args {
    2     public static void main(String ... args){
    3         Chan_Args chang=new Chan_Args();
    4         chang.chan_Args("tom","jack");
    5         System.out.printf("max number is %f",chang.max(1,2,3,5));
    6     }
    7 }
  • 相关阅读:
    需求获取常见的方法是进行客户访谈,结合你的实践谈谈会遇到什么问题,你是怎么解决的?
    软件工程导论 习题五
    软件工程导论 习题四
    软件工程导论 习题三
    软件工程导论 习题二(1.2.3.5)
    软件工程导论 习题一
    面向对象分析方法和面向过程分析方法的区别
    几大开发模型区别与联系
    项目总结
    关于需求
  • 原文地址:https://www.cnblogs.com/evilliu/p/7680195.html
Copyright © 2020-2023  润新知