03-方法的重载与命令行传参与可变参数

方法的重载与命令行传参与可变参数

方法的重载

  • 重载就是在一个类中,有相同的函数名称,但形参不同的函数。

  • 方法的重载的规则:

    • 方法名称必须相同。

    • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。

    • 方法的返回类型可以相同也可以不同。

    • 仅仅返回类型不同不足以成为方法的重载。

  • 实现理论:

    • 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译报错。

命令行传参

  • 有时候你希望运行一个程序时再传递给它消息。这要靠传递命令行参数给main()函数实现。

     
    1 pubic class CommandLine {
    2      public static void main(String args[]){
    3          for(int i=0; i<args.length; i++){
    4              System.out.println("args[" + i +"]:" + args[i]);
    5          }
    6      }
    7  }

     

  •  
     1 package xiaoka.method;
     2  3  public class Demo03 {
     4      public static void main(String[] args) {
     5          //args.length 数组长度
     6          for (int i = 0; i < args.length; i++){
     7              System.out.println("args[" + i + "]: " + args[i]);
     8          }
     9      }
    10  }

     

 

可变参数

  • JDK 1.5开始,Java支持传递同类型的可变参数给一个方法

  • 在方法声明中,在指定参数类型后加一个省略号(...)。

  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

     1  public static void printMax (double... numbers){
     2      if (numbers.length == 0){
     3          System.out.println("No argument passed");
     4          return;
     5      }
     6      
     7      double result = numbers[0];
     8      
     9      //排序!
    10      for(int i = 1; i < numbers.length; i++){
    11          if (numbers[i] > result){
    12              result = numbers[i];
    13          }
    14      }
    15      System.out.println("The max value is " + result);
    16  }

     

     
     1 package xiaoka.method;
     2  3  public class Demo04 {
     4      public static void main(String[] args) {
     5          Demo04 demo04 = new Demo04();
     6          demo04.test();
     7      }
     8      public void test(int... i){
     9          System.out.println(i);
    10      }
    11  }

     

     
posted @ 2021-04-03 10:55  小carlos  阅读(43)  评论(0编辑  收藏  举报