Java全栈JavaSE:8.Java方法详解

Posted new nm个对象

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java全栈JavaSE:8.Java方法详解相关的知识,希望对你有一定的参考价值。

声明:本节内容为本人观看“遇见狂神说”Java教学视频后总结,仅供学习参考。

1.Java中什么叫做方法

  • 方法就是实现某一个功能的一堆代码,当我们想要使用这个功能时,直接调用方法即可。而不需要每次都去写那一推代码。
  • 方法包含在类或者对象中
  • 方法的命名规则:我们命名方法时一般使用首字母小写的驼峰原则。

2.方法的定义及调用



使用方法的注意点:

  • 方法中的return语句,不仅仅会返回方法值,还会结束方法。即方法体中return后面的代码不会执行。
  • public static void main也是一个方法,不过是Java中定义好的。它是Java程序执行的入口
  • 形参与实参:形参是在定义方法是设置的,相当于占位符。实参是在调用方法时设置的,会按照定义的顺序去替换掉形参,并参与计算。
package com.oy.methods;

public class Demo1 {
    public static void main(String[] args) {
        // 调用方法
        /**
         * 10,20: 调用方法的实际参数:相当于使用10和20替代a和b在方法中的位置。
         */
        int max = myMax(10,5);
        System.out.println(max);
    }


    //定义方法:比较两数大小的方法,并返回较大的数。如果两数相等返回0
    /**
     *
     * public static:方法的修饰符
     * int:方法的返回值类型。如果无返回值则为void
     * myMax:方法名
     * int a, int b:方法的形式参数,相当于占位符。表示调用该方法需要传入两个int类型的参数
     */
    public static int myMax(int a, int b){
        if (a==b){
            return 0;
        }else if (a>b){
            return a;
        }else {
            return b;
        }
    }
}

运行结果如下:

10

3.方法的重载

package com.oy.methods;

public class Demo1 {
    public static void main(String[] args) {
        // 调用方法
        /**
         * 10,20: 调用方法的实际参数:相当于使用10和20替代a和b在方法中的位置。
         */
        double max = myMax(10.5,20.5);
        System.out.println(max);
    }


    //定义方法:比较两数大小的方法,并返回较大的数。如果两数相等返回0
    /**
     *
     * public static:方法的修饰符
     * int:方法的返回值类型。如果无返回值则为void
     * myMax:方法名
     * int a, int b:方法的形式参数,相当于占位符。表示调用该方法需要传入两个int类型的参数
     */
    public static int myMax(int a, int b){
        if (a==b){
            return 0;
        }else if (a>b){
            return a;
        }else {
            return b;
        }
    }
    // 重载myMax方法,支持浮点数类型
    public static double myMax(double a, double b){
        if (a==b){
            return 0;
        }else if (a>b){
            return a;
        }else {
            return b;
        }
    }
}

运行结果如下:

20.5

4.命令行传参


5.可变参数

  • 可变参数可以接收多个实参,只要满足对应的数据类型即可
  • 可变参数在方法中是一个数组。
package com.oy.methods;

public class Demo2 {
    public static void main(String[] args) {
        //调用方法
        myMax(10,30,5,9,45,21,99,58);
    }

    //定义方法:比较多个数字大小,并输出最大值
    public static void myMax(int... num){
        if (num.length==0){
            System.out.println("No argument passed");
        }
        int result = num[0];
        for (int i = 1; i < num.length; i++) {
            if (num[i] > result){
                result = num[i];
            }
        }
        System.out.println("Max is "+result);
    }
}

运行效果如下:

Max is 99

6.方法的递归

  • 递归必须要有递归头,也就是递归结束的边界。否则将会陷入死循环
  • 递归要有递归体,也就是调用自身的条件,否则递归就没有意义了
  • 递归深度不能太深,否则会占用大量内存资源。也就是Java栈不能堆积太多
package com.oy.methods;

public class Demo3 {
    public static void main(String[] args) {
        //调用方法
        int res = jieCheng(5);
        System.out.println(res);
    }

    //定义一个方法,实现阶乘的计算。
    //例如:5!=5*4*3*2*1
    public static int jieCheng(int num){
        //递归头:结束调用自身
        if (num==1){
            return 1;
        }
        //递归体:调用自身的条件
        else {
            return num * jieCheng(num-1);
        }
    }
}

运行结果如下:

120

以上是关于Java全栈JavaSE:8.Java方法详解的主要内容,如果未能解决你的问题,请参考以下文章

Java全栈JavaSE:17.常用类之Object类String类StringBuilder类

Java全栈JavaSE:14.面向对象下

Java全栈JavaSE:15.异常

Java全栈JavaSE:28.JDK1.8新特性

Java全栈JavaSE:17.基础API与常见算法

Java全栈JavaSE:18.常用类之System类Math类数组相关操作字符串相关操作