Java入门学习笔记(四)

Java方法

  • 方法是语句的集合。
  • 包含于类或对象中,在程序中被创建,在其他地方被引用
  • 设计原则:一个方法只完成一个功能(原子性)
  • 类似于函数。
  • main方法保持简洁干净。

一般包含:

修饰符 返回值类型 方法名(参数类型 参数名){
    方法体
    return 返回值;
}

参数类型:

  • 形式参数:在方法被调用时用于接收外界输入的数据
  • 实参:调用方法时实际传给方法的数据

Java都是值传递,没有引用传递。

方法的重载

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

重载规则

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

命令行传参

运行时传递消息,靠命令行传参给main()函数。

package com.XXX.method;

public class Commandline {
    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);
        }
    }
}

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

你可能感兴趣的:(java)