Day04_java方法

Day04_java方法

值传递(java)和引用传递

埋个伏笔,现在我也不懂。

方法重载

重载就是在同一个类中,有相同的函数名称,但形参不同的函数。

重载规则

  • 方法名称必须相同。
  • 参数列表必须不同。(个数不同或参数类型不同或参数排列顺序不同)。
  • 方法返回类型可以相同也可以不同。
  • 仅仅返回类型不同不足以成为方法的重载。

命令行传参

利用命令行传参给main()函数。

package com.XXX.method;

public class Demo01 {
    public static void main(String[] args) {
        for(int i=0;i<args.length;i++){
            System.out.println("args["+i+"]: "+args[i]);
        }
    }
}

此时在Demo01.java所在文件夹下命令行运行javac Demo01.java,生成Demo01.class文件。此时直接运行语句java Demo01.class文件,会报错:

错误: 找不到或无法加载主类 Demo01.class

需在包com.XXX.method所在文件夹下运行:java com.XXX.method.Demo01 Hello world!,运行结果:

args[0]: Hello

args[1]: world!

可变参数

从JDK 1.5开始,java支持传递同类型的可变参数给某个方法。

  • 在方法声明中,在指定参数类型后加一个省略号(…)。
  • 一个方法中只能指定一个可变参数,且必须是方法的最后一个参数,任何普通的参数必须在它之前声明。
public static void max(int a,int b, double... numbers){
}

递归

利用递归计算阶乘。

public class Demo02 {
    public static void main(String[] args) {
        Demo02 test=new Demo02();
        int result = test.test(10);
        System.out.println(result);
    }
    public static int test(int n){
        if (n==1) {
            return 1;
        }else{
            return n*test(n-1);
        }
    }
}

尽量能不用递归就不用递归,因为递归会占用大量的内存。

原文地址:https://www.cnblogs.com/gaoyao/p/13326772.html