方法
方法就是一段用来完成特定功能的代码片段。
-
方法的定义
修饰符 返回值类型 方法名(参数类型 参数名){ 方法体 return 返回值; } public static int add(int a,int b){ return a+b; }
-
方法的调用
对象名.方法名
out.println("123");
直接调用方法
int sum = add(2,3);//sum=5
-
方法的重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
重载规则:
1.方法名必须相同
2.参数列表必须不同(个数不同、或类型不同、顺序不同)
3.返回类型可同可不同
public static int add(int a,inb){ return a+b; } public static double add(double a,double b){ return a+b; }
-
命令行传参
public class CommandLine{ public Static void main(String[] args){ for(int i =0;i<args.length;i++){ System.out.println(args[i]) } } }
运行这个程序,现在命令行使用javac命令编译为class文件
然后使用java命令执行class文件时必须要带上包名例如
java com.demo.CommandLine.class
-
可变参数
方法声明中,指定参数类型后加一个省略号(…)
一个方法只能有一个可变参数,它必须是方法的最后一个参数。
public static void printMax(double... numbers){ if(numbers.length == 0){ return; } double result = number[0]; //排序 for(int i = 1 ;i < numbers.length;i++){ if(numbers[i] > result){ result = numbers[i]; } } System.out.println("最大值是" + result) }
-
递归
方法里面调用了自己本身的方法
递归结构包括两个部分:
递归头:什么时候不调用自身方法。如果没有头,将会死循环。
递归体:什么时候需要调用自身方法。
public int test(int n){ if(n == 1){ return 1; }else{ return n*test(n-1); } }
递归不适合进行层次多的运算。