【狂神说Java】学习笔记13:Java方法详解

【狂神说Java】学习笔记13:Java方法详解

[01] 何谓方法

[02] 方法定义以及调用

[03] 方法重载

★[04] 命令行传参★

[05] 可变参数

★[06] 递归★

--------------------------------------------------------------------

image

[01] 何谓方法

方法:是语句的集合。在一起执行一个功能

System.out.println() 语句里,System是类,out是对象,println()是方法。

翻译:调用系统类System里的标准输出对象out里的println方法。

image

package Chapter5_method;
public class Demo1 {
    //  main 方法 :调用加法里的方法
    public static void main(String[] args) {
        int sum = add(1,2);
        System.out.println(sum);
    }

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

--------
3

[02] 方法定义以及调用

image

image

举例:比较数字大小的写法

package Chapter5_method;

public class Demo02 {
    public static void main(String[] args) {

        int bigOne =max(10,20);		//实际参数10和20 
        System.out.println("bigOne = "+bigOne);

    }
    // 比较数字大小,写好以下流程,然后到main方法里套用并运行。
    public static int max(int num1,int num2){	//形式参数num1和num2
        int result = 0;
        if(num1 ==num2){
            System.out.println("num1 = num2");
            return 0;       //  return 0;此时是中止方法的作用。
        }
        if( num1 > num2){
            result = num1;
        }else{
            result = num2;
        }
        return result;
    }
}
----------------------
bigOne = 20

image

[03] 方法重载

一个class里有两个相同名称的方法,只是参数类型不同。

比如int max和double max两个方法。

image

★[04]★ 命令行传参

通过命令行cmd的互联,来给java文件传参数并执行。

image

命令行传参的实例应用:

第一步:写好如下的java代码。内容是将数组内的元素一一输出。

package Chapter5_method;

public class Demo03 {
    public static void main(String[] args) {
        //  命令行传参的应用。将cmd输入的参数一一输出。
        //  args.length 数组长度
        for (int i = 0; i < args.length; i++) {
            System.out.println("args["+ i+ "]:" +args[i]);
        }
    }
}

第二步:找到java文件所在路径,并找到java文件。

image


第三步:通过文件夹cmd命令,打开编辑器,输入javac Demo03.java

编译器把java文件编译为class文件。

image


第四步:返回到src文件夹包的层级加载(不找到这个src层的话无法被执行),

然后输入:完整路径 + 文件 + 参数 。
java Chapter5_method.Demo03 this is a joke

此时编译器就把我们空格输入的每一个参数都当作数组元素,一一输出。

image

总结:

先找到java文件的存在路径,然后编译成class文件。

再回到src层级,输入完整文件路径和参数即可执行。

有点复杂有点绕。

[05] 可变参数

可变参数:同类型方法的可变参数的合写。

image

package Chapter5_method;

public class Demo04 {
    public static void main(String[] args) {
        //  调用可变参数的方法
        printMax(34, 3, 7, 2, 56.5);
        printMax(new double[]{1,2,3});

    }

    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);

    }
}
————————————————————————————
The Max Value is 56.5
The Max Value is 3.0

★[06] 递归★

面试笔试的高频问题。必须掌握。

递归就是自己调用自己的方法。

递归结构包括两部分:递归头(什么时候不调用自身方法)和递归体(什么时候调用自身方法)

image

package Chapter5_method;

public class Demo06 {
    // 用递归 计算阶乘。
    public static void main(String[] args) {
        System.out.println(f(5));
    }

    public static int f(int n){
        // 2! = 2*f(1)=2*1
        // 3! = 3*f(2)*f(1)=3*2*1
        if (n==1){
            return 1;
        }else{
            return n*f(n-1);	
        }
    }
}
-------------------
   120
posted @ 2021-05-25 23:37  金城麻吉  阅读(189)  评论(0编辑  收藏  举报