JavaSE (Java基础):方法简介

6 Java中的方法

        下面关于Java方法的介绍都引用了某B大佬狂神的PPT

6.1 方法简介

 

        自己看注释,,,,这就是方法!

package com.zlx.method;

public class Demo01 {
    //main方法
    public static void main(String[] args) {

        //实际参数:实际调用传递给他的参数
       int sum = add(10, 32);
       System.out.println(sum);

        //test();
    }

    //加法
    public static int add(int a,int b){
        return  a+b;
    }



    //练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
    public static void  test(){
        for (int i = 1; i <= 1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");
            }
            if (i%(5*3)==0){
                System.out.println();
                //System.out.print("\n");
            }
        }
    }
}

6.2 方法的重载

         在下面这段代码当中,我们定义的这个max()就是一个判断最大值并输出的方法,但是哈我们又用了这个名为方法重载的东西,本来我们的max()只能比较int类型的数据,用了重载,等于给给max()方法的输入参数多添加了一个类型double,里面的东西都可以改。

package com.zlx.method;

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

    //方法重载:方法的名字可以一样,参数列表必须不同
    //比大小
    public static int max(double num1,double num2){

        int  result = 0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0; //终止方法
        }

        if (num1>num2){
            result = (int)num1;
        }else {
            result = (int)num2;
        }

        return result;
    }


    //比大小
    public static int max(int num1,int num2){

        int result = 0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0; //终止方法
        }

        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }

        return result;
    }
}

6.3 方法中的可变参数

         自己看下面这段代码,也是比较这个输入的double类型的数的大小,不一样的是我们的方法使用了可变参数,实现了不管输入多少的数都可以比较他们的大小,里面的for循环还利用数组传递输入的值,来比较大小,取得最大的那个值并输出。

package com.zlx.method;

public class Demo04 {
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.test(1);

        printMax(1.4212,1.324,1.52521,1.3920);
    }


    //可变参数:一个方法中只能有一个可变参数,他必须是方法的最后一个参数。任何普通的参数必须在他之前声明。
    public void test(int... i){
        System.out.println(i[0]);
    }


    //随便输入多少个double类型的数,比较出最大的并输出他
    public static void  printMax(double... numbers){
        if (numbers.length==0){
            System.out.println("No argument passed");
        }

        double result = numbers[0];

        //排序!
        for (int i = 1;i < numbers.length;i++){
            if (numbers[i] > result){
                result = numbers[i];
            }
        }
        System.out.println("The max value is:" + result);
    }
}

6.4递归

     

        递归的话自己体会不,反正Java中的递归能不用就不用,因为Java用的栈的方式来存储使用数据,递归一旦多起来的话多与计算机的内存占用会很大,使得程序崩溃,每调用一层递归的函数,就会占用栈的一层内存空间,无法得到释放。 

package com.zlx.method;

public class Demo06 {
    //2! 2*1
    //5! 5*4*3*2*1
    public static void main(String[] args) {
        System.out.println(f(1000));
    }

    //1! 1
    //5! 5*4*3*2*1
    //3! 3*f(2)
    public static double f(double n){
        if (n==1){
            return 1;
        } else {
            return n*f(n-1);
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值