方法是是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用一个方法处理一件事情方法的定义格式:修饰符 返回值类型 方法名(参数类型 参数名){…方法体…return 返回值}实参、形参的概念
package method; public class Demo01 { //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; } } package method; public class Demo02 { public static void main(String[] args) { int big = compare(10,10); System.out.println(big); } public static int compare(int a,int b){ if(a == b){ System.out.println(a+ "=" + b ); return 0; } return a>b ? a : b; } }方法名相同,参数类型或者参数个数或者参数排列顺序不同就是方法重载。
package method; public class Demo02 { public static void main(String[] args) { double big = compare(10.0,10.0); System.out.println(big); } public static int compare(int a,int b){ if(a == b){ System.out.println(a+ "=" + b ); return 0; } return a>b ? a : b; } public static double compare(double a, double b){ if(a == b){ System.out.println(a+ "=" + b ); return 0; } return a>b ? a : b; } }有时候希望运行一个程序时,在传递给她次消息在,这就靠命令行参数给main()函数实现。
JDK1.5开始,Java支持传递同类型的可变参数给一个方法在方法声明中,在指定参数类型后加一个省略号(…)在一个方法中只能指定一个可变参数,而且它必须是该方法的最后一个参数
package method; //可变参数 不定项参数 public class Demo04 { public static void main(String[] args) { Demo04 demo04 = new Demo04(); demo04.test(1,2,3,4,5); printMax(1.0,2,3.2,0.9); printMax(new double[]{10,20.0,5.1,2}); } public void test(int... i){ System.out.println(i[0]); System.out.println(i[1]); System.out.println(i[2]); System.out.println(i[3]); System.out.println(i[4]); } 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("最大的数为:" + result); } }方法自己调用自己 递归头: 什么时候不调用自己的方法 递归体: 递归函数 递归采用的是栈机制,逐步递归就是压栈,当深度很高的时候,时空性就非常不好,能不要递归就不递归。
package method; // n的阶乘 public class Demo6 { public static void main(String[] args) { System.out.println("阶乘:"+f(5)); } public static int f(int n){ if(n==1){ return 1; }else{ return n*f(n-1); } } }