Day05-java方法
方法的重载
-
重载就是在一个类中,有相同的函数名称,但形参不同的函数
方法的重载的规则
-
方法名称必须相同
-
参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
-
方法的返回类型可以相同也可以不相同
-
仅仅返回类型不同不足以成为方法的重载
-
仅权限修饰符不同不属于方法的重载,但重载方法的权限修饰符可以不同
可变参数
-
JDK1.5开始,Java支持传递同类型的可变参数给一个方法
-
在方法声明中,在指定参数类型后加一个省略号(...)
-
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明
递归
-
递归结构包括两个部分
-
递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
-
递归体:什么时候调用自身方法
-
-
递归实例-计算阶乘
public class Demo04 {
public static void main(String[] args) {
int result=f(5);
System.out.println(result);
}
/*求阶乘*/
public static int f(int n){
if (n==1){
return 1;
}else{
return n*f(n-1);
}
}
}
写一个计算器
思路
-
写四个方法:加减乘除
-
利用循环+switch进行用户交互
-
传递需要操作的两个数
-
输出结果
package method;
import com.sun.source.tree.ContinueTree;
import jdk.swing.interop.SwingInterOpUtils;
import javax.script.ScriptContext;
import java.util.Scanner;
public class Demo05 {
/*写一个计算器*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字:");
double a = scanner.nextDouble();
System.out.println("请输入运算法:");
String ch = scanner.next();
System.out.println("请输入第二个数字");
double b = scanner.nextDouble();
switch (ch) {
case "+":
System.out.println("结果为:" + a + "+" + b + "=" + add(a, b));
break;
case "-":
System.out.println("结果为:" + a + "-" + b + "=" + sub(a, b));
break;
case "*":
System.out.println("结果为:" + a + "*" + b + "=" + mul(a, b));
break;
case "/":
System.out.println("结果为:" + a + "/" + b + "=" + div(a, b));
break;
default:
System.out.println("输入有误");
}
}
public static double add(double a, double b) {
return a + b;
}
public static double sub(double a, double b) {
return a - b;
}
public static double mul(double a, double b) {
return a * b;
}
public static double div(double