JavaSe基础2022年12月05日学习内容

JavaSe-2022-12-05

每日一句:先众人而为,后众人而言。

学习内容:方法、递归

  • 方法

    • 概念:将一堆代码重用的机制;

    • 用自己的话来说:方法是一个概念从古至今就有,如原始人钻木取火得到火种的方法;方法一个方法定义多个人去使用的才能叫做方法;在代码中也是这样如我们定义一个求和的方法,只需要调用两个数字就能够求出它们的和是多少

    • 语法结构

      • 访问修饰符 静态修饰符 返回值类型 方法名(参数类型){}
    • 根据返回值的不同和参数的不同主要分为4类

       public static void main(String[] args) {
              // 1  无返回值无参数
              f1();
              // 2  无返回值有参数
              f2("小黑");
              // 3  有返回值无参数
              f3();
              // 4  有返回值有参数
              f4(4);
          }
          // 1  无返回值无参数
          public static void f1(){}
          // 2  无返回值有参数
          public static void f2(String name){}
          // 3  有返回值无参数
          public static int f3(){return 1;}
          // 4  有返回值有参数
          public static int f4(int a){return a;}
      
      • 注意:方法必须在主方法中调用才能执行,方法之间是并列关系。
    • 方法的使用

      • public static void main(String[] args) {
                int[] a1 = {1,2,24,52,6,2,3,4,1,2,3};
                //调用下面写的方法 加上static(静态)我们就可以直接调用
                sort(a1);
                System.out.println(f1(1,2));  //f1(1,2)传递的是实参
                System.out.println(f2(3,4));
                System.out.println(f3());
            }
            //冒泡排序
            public static void sort(int[] arr){
        //        将传递过来的arr直接使用
                for (int i = 0; i < arr.length-1; i++) {
                    for (int j = 0; j < arr.length -i-1; j++) {
                        if(arr[j] > arr[j+1]){
                            int t = arr[j];
                            arr[j] = arr[j+1];
                            arr[j+1] = t;
                        }
                    }
                }
                System.out.println(Arrays.toString(arr));
            }
            //定义一个方法f1,返回两个指定整数的和并调用  int x是形参
            public static int f1(int x,int y){
                return x+y;
            }
            //定义一个方法f2,返回两个指定整数中的较大者并调用
            public static int f2(int x,int y){
                return x > y ? x : y;
            }
            //定义一个方法f3,输出两个随机整数的乘积并调用
            public static int f3(){
                Random random = new Random();
                int x = random.nextInt(10)+1;
                int y = random.nextInt(10)+1;
                return x*y;
            }
        
  • 递归

    • 什么是递归

      • 方法自己调用自己就是递归
      • 递归很耗费栈内存的,能够不用尽量不要用
      • 递归必须有结束条件,没有结束条件一定会发生栈内存溢出错误
    • 递归的使用

      • //计算第n项阶乘
         public static void main(String[] args) {
                System.out.println(f(3));
            }
            public static int f(int n){
                if(n<=1)
                    return 1;
                else
                    return n*f(n-1);
            }
        }
        //   计算第n项斐波那契数的值
         public static void main(String[] args) {
                int n = 10;
                System.out.println(f(n));
         }
         public static int f(int n){
                //推导出递归推送
                //给出递归终止条件
                if(n== 1 || n==2){
                    return 1;
                }
                return f(n-1)+f(n-2);
         }
        
    • 方便理解我还画了一个图

      • 递归
  • 作业:

  • 这里为什么错: jdk1.6中 是布尔和字符型变量, 在jdk1.8中,可以存放字符型变量和整型变量

  • 在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值