Java基础-方法

145 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情

什么是方法

  • 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
  • 注意:方法必须先创建才可以使用,该过程成为方法的定义
  • 方法创建后并不能直接运行的,需要手动使用后才执行,该过程称为方法的调用
  • System.out.println(),是什么意思呢? System是一个系统的类,out是一个对象,println是一个方法
  • Java方法是语句的集合,他们在一起执行一个功能。
  • 设计方法的原则:一个方法只完成一个功能,这样有利于我们后期的扩展。
修饰符 返回值 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
  • 举例
    public static void main(String[] agrs) {
      int max=max(10,10);
        System.out.println(max);
    }
        public static int max(int num1,int num2){
        int result=0;
        if (num1==num2){
            return 0;//终止方法
        }
        if (num1>num2){
            return num1;
        }else {
            result = num2;
        }
        return result;
        }
}

带参数方法的定义

  • 格式 public static void 方法名 (参数){....}
  • 格式(单个参数)public static void 方法名 (数据类型 变量名)
  • 格式(多个参数)public static void 方法名 (数据类型 变量名1,数据类型 变量名2)
  • 注意:方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
  • 方法定义时,多个参数之间使用逗号(,)分隔

带参数方法调用

  • 格式:方法名(参数)
  • 格式(单个参数)方法名(变量名/常规值)
  • 格式(多个参数)方法名(变量名1/常规值1,变量名2/常规值2)
  • 注意:方法调用时,参数的数量与类型必须与方法定义设置相匹配,否则程序会报错

方法的重载

方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。

  • 方法名相同
  • 方法的参数类型,参数个不一样
  • 方法的返回类型可以不相同
  • 方法的修饰符可以不相同
  • main 方法也可以被重载

命令行传参

  • 有时候你希望运行一个程序的时候再传递给他消息。这是要考传递命令
public class ddd {
    public static void main(String[] agrs) {
        for(int i = 0; i<agrs.length; i++){
            System.out.println("args["+i+"]"+agrs[i]);
        }
    }
}

可变参数

    public static void main(String[] agrs) {
        printMax(34,3,3,2,56.5);
        printMax(3,5);
    }
    public static void printMax(double...numbers){
        if (numbers.length==0){
            System.out.println("no argument passed");
            return;
        }
        double result=numbers[0];
        //排序!
        for (int i=1;i<numbers.length;i++){
            if (numbers[1]>result){
                result=numbers[1];
            }
        }
        System.out.println("max:"+result);
    }
}

max:34.0 max:5.0

递归(重点)

  • 死循环,栈会溢出,自己调用自己
    public static void main(String[] agrs) {
        ddd test = new ddd();
        test.test();
    }
    public void test(){
        test();
    }
}

  • 例子
    public static void main(String[] agrs) {
    //5! 5*4*3*2*1=120
        System.out.println(f(5));
    }
    public static int f(int n){
        if (n==1){
            return 1;
        }else {
            return n* f(n-1);
        }
    }
}

喜欢的朋友可以点个赞,谢谢支持