# 方法的定义# 方法的调用
## 方法的调用与形式参数 ```javascript public static void main(String[] args) { //形式参数--比大小 //调用方法 int result = FunctionDemo01.max(10,10); System.out.println(result); } //创建一个方法 //修饰符 方法类型 方法名称(形式参数) public static int max(int a,int b){ if(a==b){ System.out.println("a=b"); return 0; }else if(a>b){ return a; }else{ return b; } } ``` ## 方法的重载---参数类型不同,名字可以相同 规则: 方法名称必须相同 参数列表必须不同(个数不同,类型不同,参数排列顺序不同) 方法的返回值类型可以相同可以不同 仅仅方法的返回值类型不同,不足以构成方法的重载 实现理论: **方法名称相同时,编译器会根据调用方法的参数个数,参数类型等进行逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。** # 命令行传参 ```javascript public class CommandDemo { public static void main(String[] args) { for(int i=0;i< args.length;i++){ System.out.println(args[i]); } } } ``` 必须使用cd../回退到src文件下,再访问全包名路径,才可以执行.class文件
# 可变参数 ```javascript public class VariableDemo { public static void main(String[] args) { //可变参数,可变参数可以理解为一个数组 findMax(12,36,25,14,99,84,77); //findmax(new double[]{12,23}); } //先定义一个方法,找出最大值 public static void findMax(double... i){ if(i.length==0){ System.out.println("没有数字"); //return 0; } double max = 0; for(int x=0;x<i.length;x++){ if(i[x]>max){ max=i[x]; } } // return max; System.out.println("最大值是:"+max); } ``` # 递归---自己调用自己 **缺点:嵌套的比较深的时候可能会造成内存崩溃(由于Java的栈机制决定了这样的性质)** **小计算使用递归,大量计算(不使用)** 递归结构包含两个部分: 递归头:什么时候不调用自身方法,如果没有头,将陷入死循环 递归体:什么时候需要调用自身方法
``javascript public class RecursionDemo { public static void main(String[] args) { //使用递归实现阶乘 int s = recursion(5); System.out.println("使用递归的方法求阶乘:"+s); } //定义一个方法 public static int recursion(int i){ if(i==1){ return 1; }else{ return i*recursion(i-1); } } } ``` # 作业---写一个计算器(实现加减乘除) ```javascript public class HomeWork { public static void main(String[] args) { //做一个计算器时间加减乘除 calculate(10,‘-‘,20); } //定义一个加的方法 public static double add(double a,double b){ double sum = 0; sum=a+b; return sum; } //定义一个减的方法 public static double subtract(double a,double b){ double sum = 0; sum=a-b; return sum; } //定义一个乘的方法 public static double rid(double a,double b){ double sum = 0; sum=a*b; return sum; } //定义一个除的方法 public static double divide(double a,double b){ double sum = 0; sum=a/b; return sum; } //定义计算机 public static double calculate(double a, char f, double b){ switch(f){ case ‘+‘: double resulta = add(a,b); System.out.println("a+b="+resulta); //return resulta; break; case ‘-‘: double results = subtract(a,b); System.out.println("a+b="+results); // return results; break; case ‘*‘: double resultr = rid(a,b); System.out.println("a+b="+resultr); // return resultr; break; case ‘/‘: double resultd = divide(a,b); System.out.println("a+b="+resultd); // return resultd; break; default: System.out.println("计算错误!"); //return 0; } return 0; ```
来源:【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
原文:https://www.cnblogs.com/Gpengbolg/p/14063725.html