• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

escapedlili

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Day 5 Java 方法

定义

语句的集合,一起执行一个功能
本意是功能块,实现某个功能的 语句块的集合
eg:

点击查看代码
package methods;

public class Demo1 {
    // main 方法: 主要的方法,用于运行调用,给程序管的
    public static void main(String[] args) {
//        int sum = add(1, 2);//实际参数
//        System.out.println(sum); // sum = 3
        test();
    }
   //我们自己写的方法
    // 加法
    //            返回值 起名  参数
    public static int add(int a, int b) //形式参数
     {
        return a + b; //方法,本质就是功能块: 一个方法只完成一个功能
    }

    public static void test(){
        for(int i =0; i<= 1000; i++){
            if ( i % 5==0){
                System.out.print(i+ "\n");
            if (i%(5*3)==0) {
                  System.out.println();
            }

            }

        }

    }
}

方法的定义和调用

组成部分
修饰符:告诉编译器如何调用方法,定义方法的访问类型
返回值:有的有具体类型,有的没有(用void)
eg: public static void main
方法名:给方法起的名字
参数类型:一个占位符,方法被调用的时候传递值给参数

形式参数
eg: public static int sum (int a, int b) _ 这个就是形式参数,不会赋值
实际参数
eg: public static void main(String[] args){
int sum = add(1, 2) } 实际参数,赋了具体的值了

组成:
修饰符 返回值类型 方法名 (参数类型 参数名){
......
方法体(写的一些结构啥的)
.......
return 返回值;
}

点击查看代码
package methods;

public class Demo1 {
    // main 方法: 主要的方法,用于运行调用,给程序管的
    public static void main(String[] args) {
//        int sum = add(1, 2);//实际参数
//        System.out.println(sum); // sum = 3
        test();
    }
   //我们自己写的方法
    // 加法
    //            返回值 起名  参数
    public static int add(int a, int b) //形式参数
     {
        return a + b; //方法,本质就是功能块: 一个方法只完成一个功能
    }

    public static void test(){
        for(int i =0; i<= 1000; i++){
            if ( i % 5==0){
                System.out.print(i+ "\n");
            if (i%(5*3)==0) {
                  System.out.println();
            }

            }

        }

    }
}

方法的重载

即在一个类中,有相同的函数名称,但是不同的参数

方法的名称必须相同
参数列表必须不同(个数不同,或者类型不同,参数排列顺序不同等)

可以使得实现不同要求输出

点击查看代码
package methods;

public class Demo02 {
    public static void main(String[] args) {
        double max = max(10.0, 12.0);
        System.out.println(max);

    }
    //double _其实就是方法重载,改变了参数
    public static double max(double number1, double number2){
        double result =0;
        if(number1 == number2){
            System.out.println("number1= number2");
            return 0; //终止方法
        }
        if(number1>number2){
            result = number1;
        }
        else {
            result = number2;
        }
        return result;
    }

    //比大小
    public static int max(int number1, int number2){
        int result =0;
        if(number1 == number2){
            System.out.println("number1= number2");
            return 0; //终止方法
        }
        if(number1>number2){
            result = number1;
        }
        else {
            result = number2;
        }
    return result;
    }
}

//方法重载: 名字都是一样,就是参数不同,例如上面的参数int 变成 double 其他都不变,这样就是方法重载
/*
* 方法名称必须相同
* 参数必须不同(个数不同,或者类型不同,参数排列顺序不同)
* */

可变参数

在方法声明中,在指定参数类型后加一个省略号(...)
但是它必须放在最后面,即是方法的最后一个参数

点击查看代码
package methods;

//可变参数
public class Demo3 {
    public static void main(String[] args) {
        Demo3 demo3 = new Demo3();
        demo3.test(1, 2, 3, 4, 5, 6);

    }
    //参数类型必须一样,比如如下不可以是double + int
    //可变参数必须放在最后
    public void test(int x, int... i){
        System.out.println(i[0]); //输出2
        System.out.println(i[1]); //输出 3
        System.out.println(i[2]); //输出4
        System.out.println(i[3]); //输出5

    }


}


递归概念

结构:递归头:什么时候不调用自身方法,最开始的数
递归体:什么时候调用自身方法
只适用于小范围情况,因为它属于栈结构,需要很大的空间

点击查看代码
package methods;
//递归:只能用在小范围的情况,但是思路很重要
public class Demo5 {
    public static void main(String[] args) {
        //阶乘
        System.out.println(f(2));
    }
    public static int f(int n){

        if (n == 1){
            return 1; //递归头
        }else{
            return n*f(n-1); //递归体
        }

    }
}


posted on 2025-09-12 14:03  escapedlili  阅读(6)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3