Day07.Java方法

目录

方法目录

何为方法

package com.kuang.method;

public class Demo01 {
    //main 方法
    public static void main(String[] args) {
        //实际参数:实际调用传递给他的参数
        int sum = add(1, 2);
        System.out.println(sum);
//        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+"\t");
            }
            if (i%(3*5)==0){ //每行输出
                System.out.println(); //换行写法一
                System.out.print("\n"); //换行写法二
            }
        }
    }
}

方法的定义与调用

方法的定义与调用

方法调用

Java都是值传递!!!

package com.kuang.method;

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

    }

    //比大小
    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;
    }
}

方法的重载

方法的重载

package com.kuang.method;

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

    }

    //比大小
//    public static double max(double num1,double num2){
//        double result = 0;
//        if (num1 == num2){
//            System.out.println("num1==num2");
//            return 0 ;  //终止方法
//        }
//        if (num1>num2){
//            result = num1;
//        }else {
//            result = num2;
//        }
//        return result;
//    }
    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;
    }
    public static int max(int num1,int num2,int num3){
        int result = 0;
        if (num1 == num2){
            System.out.println("num1=num2");
            return 0 ;  //终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }
}

命令行传参

命令行传参

package com.kuang.method;

public class Demo03 {
    public static void main(String[] args) {
        // args.length 数组长度
        for (int i = 0; i < args.length; i++) {
            System.out.println("arg["+i+"]:"+args[i]);
        }
    }
}

main()方法传递参数步骤:

!!! 如果直接运行class文件,需要找到其包的路径,然后再加载,否则执行不了。

①右键类文件->Open in->Explorer 即可进入类文件所在存储位置->(cmd+空格)进入Dos命令窗口

②通过javac编译:输入javac Demo03.java,会生成一个Demo03.class文件->此时输入java Demo03来执行class文件,但会出错,因为要用cd..退到src目录下才可以执行->在src目录下输入java com.kaung.method.Demo03来执行class文件,执行的时候要把包名加上,编译的时候则不用->arg数组一个参数如 this is kuangshen

示例图如下:

命令行传参2

可变参数

可变参数

package com.kuang.method;

public class Demo04 {

    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.test(1,2,3); //直接输入数字即可,不用打...
    }
    public void test(int... i){
        System.out.println(i[0]);
        System.out.println(i[1]);
        System.out.println(i[2]);
    }
}
package com.kuang.method;

public class Demo05 {
    public static void main(String[] args) {
        //调用可变参数的方法
        printMax(10,20,80.6,666); //直接在括号里面输入数字即可,不用打...
        printMax(new double[]{10,90.7,20});
    }
    public static void printMax(double... numbers){
        if (numbers.length==0){
            System.out.println("No argument passed");
            return;
        }
        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);
    }
}

递归

递归

package com.kuang.method;

public class Demo06 {
    //递归思想
    public static void main(String[] args) {
        System.out.println( f(5));
    }
    //递归:阶乘!!
    /*
    1!       1        1
    2!      2*1       2*f(1)
    3!      3*2*1     3*f(2)
    5!      5*4*3*2*1   5*f(4)
     */
    public static int f(int n){
        if (n==1){
            return 1 ;
        }else {
            return n*f(n-1);
        }
    }
}

作业:计算器

作业:计算器

在method里面的HomeWork与HomeWorkPlus中!

posted @ 2021-08-17 16:07  爱吃白菜的熊  阅读(27)  评论(0)    收藏  举报