java day05 方法(形参实参、重载、递归)

1、方法

1.1 定义规则

访问修饰符 返回值类型 方法名(参数类型1 参数1,参数类型2 参数2…){
方法体
}

示例:

 public static int (int num1,int num2){
     return;
 }

具体代码展示:

package Day05_method;
/**
 * @author Ran
 * @since JDK 1.8
 */
public class Demo02 {
    public static void main(String[] args) {
        print(3,"!");
        strprintf();
        print(4,"$");
        strprintf();
        print(5,"%");
    }
    public static void print(int num,String str){
        for (int i=0;i<=num;i++){
            for (int j=0;j<=i;j++){
                System.out.print(str);
            }
            System.out.println();
        }
    }
    public static void strprintf(){
        System.out.println("-------------");
    }
}

调用方法流程:

在这里插入图片描述

注意事项:

  • 1.方法必须定义在类中
  • 2.静态方法只能调用静态方法,所以近期写的方法需要加上static
  • 3.方法可以重复调用,减少代码量,提高代码的复用性
  • 4.方法只做一件事
  • 5.确定方法的作用,确定方法名,确定参数,确定返回值类型

1.2 优点

好处:

  • 减少代码冗余。
  • 提高复用性。
  • 提高可读性。
  • 提高可维护性。
  • 方便分工合

1.3 方法的参数

多数情况下,方法与调用者之间需要数据的交互;调用者必须提供必要的数
据,才能使方法完成相应的功能。

代码展示:

package com.qf.ran.method;
/**
 * @author Ran
 * @since JDK 1.8
 *      编写方法 计算2个整数的和并返回
 *      方法的返回值类型由方法返回的数据的数据类型决定
 *      如果没有返回数据,则使用void
 */
public class Demo03 {
    public static void main(String[] args) {
        //1.调用方法并接受返回值
        int num = add(3,4);
        System.out.println("num:"+num);
        //2.调用方法不接收返回值
        add(4,5);
    }
    //计算2个数之和的方法
    public static int add(int num1,int num2){
        int sum = num1 +num2;
        return sum;
    }
}

1.4 重载

重载:

  1. 方法必须都在一个类中
  2. 方法的名字必须一样
  3. 方法的参数列表不一样 – 参数个数不一样或者参数类型不一样
  4. 与返回值没有关系

代码展示:

package com.qf.ran.method;

/**
 * @author Ran
 * @since JDK 1.8
 *
 *      重载:
 *          1.方法必须都在一个类中
 *          2.方法的名字必须一样
 *          3.方法的参数列表不一样    --  参数个数不一样或者参数类型不一样
 *          4.与返回值没有关系
 *
 */
public class Demo05 {
    public static void main(String[] args) {
        add(1,2,3);
    }
    public static void add(){
        System.out.println("添加方法");
    }
    //重复定义
    /*public static void add(){
        System.out.println("第二个添加方法");
    }*/
    //重载
    public static void add(int num){
    }
    //重载
    public static void add(String str){
    }
    //重载
    public static void add(int num1,int num2){
        System.out.println(num1+num2);
    }
    //重载
    public static void add(int num1,int num2,int num3){
        System.out.println(num1+num2+num3);
    }
    //重复定义  --  参数个数一样,参数类型一样,形参名不一样
    /*public static void add(int num2,int num1){

    } */
    //重复定义  --  参数个数一样,参数类型一样,返回值类型不一样
    /*public static double add(int num1,int num2){
        return 0.0;
    }*/
}
5.2 形参与实参

定义语法:
public static void 方法名称( 形式参数 ){
//方法主体
}

经验:

  • “形参”等价于“局部变量的声明”。

调用语法:

  • 方法名称( 实际参数 );

经验:

  • “实参”等价于“局部变量的赋值”。

作用:

  • 方法的参数可以让代码功能更灵活、普适性更高,易于修改及维护。

1.5 递归

递归:

  • 1.方法里调用方法本身
  • 2.方法里有出口

代码示例:

package Day05_method;
/**
 * @author Ran
 * @since JDK 1.8
 *
 *      递归:
 *          1.方法里调用方法本身
 *          2.方法里有出口
 *
 *      阶乘:
 *          1!  =   1                   =   1
 *          2!  =   1*2                 =   1!*2
 *          3!  =   1*2*3               =   2!*3
 *          4!  =   1*2*3*4             =   3!*4
 *          ...
 *          n!  =   1*2*3....*n         =   (n-)!*n
 *
 */
import java.util.Scanner;

public class Demo06 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("输入数字,计算其阶乘:");
        long num1 = input.nextLong();
        if(num1<=0){
            System.out.println("输入有误");
        }else{
            long num2 = recursion(num1);
            System.out.printf("%d!=%d",num1,num2);
        }
    }

    public static long recursion(long num){
        if (num==1){
            return 1;
        }
        return recursion(num-1)*num;
    }
}

图示讲解:

在这里插入图片描述

end、今天就到此为止吧,明天依旧光芒万丈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值