java函数

一般我们的一个函数只做一件事,我们要尽量保证main函数整洁

方法重载:

  • 方法同名(必须满足)

  • 但是传递的形式参数是不一样的(个数不一样或者类型不一样)(必须满足)

  • 他们的函数返回值类型可以相同(可选)

  • 实现原理:当方法名字相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,已选择对应的方法,如果匹配失败,而编译器报错
    
//定于两数相加
        double  sum = add(1.0,2.0);
        System.out.println("和"+sum);

//函数(函数一般都不在main里面)
//public,static,都是表示修饰符
//int 表示函数的返回值为int类型,如果无类型,也可以为void
//我们传递的新参一定要带数据类型   
    public static  int add(int a,int b){
        return a+b;
    }
//我们也可以使用方法的重载
//当我们对传入的参数类型不确定,个数不确定时使用
//    方法的重载
//    1.参数列表改变,方法名不变
//    public static double add(double a,double b){
//        return a+b;
//}
//    2.再方法重载中,我的方法类型不是一定要改变,可以不变
//    public static  int add(double a,double b){
//        return (int)(a+b);
//    }
//比大小
        int max = lagger(3,4);
        System.out.println("最大的是"+max);

//函数体:
         public static int lagger(int a,int b){
                return (a-b) > 0 ? a : b;
            }
//另一种定义,这种属于对象使用方法
//定义了一个方法,它是属于Function这个类的
        Function function = new Function();
        int max = function.lagger(3,4);
        System.out.println("最大的是"+max);
        public int lagger(int a,int b){
            return (a>b) >0 ?a:b;
        }

方法的调用

  • 当函数具有返回值时,我们需要将他赋值给一个变量,在对变量进行输出

    int max = lagger(3,4);
    
  • 当函数不具有返回值时,我们直接打印输出即可

    function.printMax(1,3,4,5,6,7,8,9,12,2);
    

可变参数

  • 当我们不确定自己会传入几个参数时,我们使用可变参数

  • 可变参数一定要放在最后,不可以放在普通参数的前面

  • 可变参数,一旦确定了数据类型,那么中间的所有值都必须遵守

  • 我们可以简单的将可变参数理解为一个数组,所以一般我们需要对她进行判断是否传入值

    //        对于类的方法,先声明对象,他是类Function的对象
            Function function = new Function();
    //        调用对象里的方法
            function.test(1.0,2,3,4,5);
            public void test(double m,int...i){
                    System.out.println("第一个普通参数"+m);
                    for(int j = 0;j<i.length;j++){
                        System.out.println("可变参数数组"+i[j]);
                    }
                }
    

递归

  1. 递归一般我们不太建议使用,除非在面对基数比较小的情况下

  2. java属于栈空间,每次调用都会分配一次空间,就会导致空间浪费严重

    递归结构分为两个部分

    • 递归头:判断出什么时候我们不需要进行递归(一定需要,否则会出现死循环)
    • 递归体:什么时候需要调用递归
  3. 阶乘:

    public static void main(String[] args) {
    //    定义对象
        Recursion recursion = new Recursion();
    //调用方法
        int sum = recursion.factorial(5);
        System.out.println("阶乘为"+sum);
    }
    
        public int factorial(int n){
    //    这个就是递归头
            if(n == 1){
                return 1;
            }else {
    //            递归体
                return n*factorial(n-1);
            }
        }
    }
    
版权声明:本文为summer在writing原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/summer-like-writing/p/16295678.html