方法

  • 方法是解决一类问题的步骤的有序组合

  • 包含于类/对象中

设计原则

方法的原子性:一个方法只实现一个功能

定义与调用

方法的组成:

方法的调用

  • 若方法返回值为空

    System.out.println("Hello!");
    
  • 若方法返回值不为空

    int a = sum(b,c);
    

方法重载

在同一个类中,有相同名称,因参数不同,而有不同的实现,称为重载。

如:

package com.muling1m;

public class Demo {
    public static void main(String[] args){
        int m = max(10,20,30);//全为int
        System.out.println("重载调用1:"+m);
        double n  = max(10.0,20,30);//有double
        System.out.println("重载调用2:"+n);
    }
    public static double max(double n1,double n2,double n3){
        if(n1 > n2 && n1 > n3){
            return n1;
        }
        else if(n2 > n1 && n2 > n3){
            return n2;
        }
        else{
            return n3;
        }
    }
    public static int max(int n1,int n2,int n3){
        if(n1 > n2 && n1 > n3){
            return n1;
        }
        else if(n2 > n1 && n2 > n3){
            return n2;
        }
        else{
            return n3;
        }
    }
}

注意

  • 方法名称相同
  • 参数列表不完全相同
  • 返回值可以相同也可以不同
  • 返回类型不同不能定义一个重载

命令行传参

在Dos窗口运行一个程序时,通过main函数向程序内传递参数

public class Demo1 {
    public static void main(String[] args){
        
    }
}

在main函数定义的时候,其内参数为args,命令行就是通过args传参。

public class Demo1 {
    public static void main(String[] args){
        for (int i = 0; i< args.length; i++){
            System.out.println("args["+i+"]="+args[i]);
        }
    }
}

执行结果为:

可变参数

JDK1.5后,在参数列表的声明中,对于同一类型的可变参数提供的特性

可以指定参数类型后添加一个省略号(…)代表可变参数,省略号后添加可变参数数组的名称

一个方法只能支持一个可变参数且应在最后,普通参数在其之前定义完毕

示例:

public class Demo2 {
    public static void maxPrint(int ... numbers){
        //numbers为可变参数数组
        if(numbers.length == 0){
            System.out.println("No args!");
            return;
        }
        int result = numbers[0];
        for (int num: numbers){
            //增强for
            if(result < num) result=num;
        }
        System.out.println("Max:"+result);
    }
    public static void main(String[] args){
        maxPrint(1,2,3,123,5344,1321,233,32523);
    }
}

打印结果为:32523