Java方法
**方法重载:**一个类中,有相同的函数名称,但形参不同的函数
重载规则:
- 方法名称必须相同
- 参数列表必须不同(个数不同,类型不同,参数排列顺序不同等)
- 返回类型可以相同可以不同
public class MethodDemo {
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
//方法重载测试
int sum1 = add(a,b);
int sum2 = add(a,b,c);
System.out.println("a + b = " +sum1); //3
System.out.println("a + b + c = " +sum2); //6
}
//方法实现三个数相加
public static int add(int a, int b, int c) {
return a + b + c;
}
//方法实现两个数相加
public static int add(int a, int b) {
return a + b;
}
}
可变参数 :在方法声明中,在指定参数类型后加一个省略号(…)。一个方法只能指定一个可变参数,且必须是方法的最后一个参数。即普通参数必须在其之前声明。
递归:自己调用自己,将一个大型的复杂问题层层转化为一个与原问题相似的小规模问题求解(尽量少用递归)
-
关键1:什么时候开始递归(用到递归)
-
关键2:什么时候结束递归(边界条件)
public static void main(String[] args) { System.out.println("5的阶乘为:" +fib(5));//120 } public static int fib(int n) { if(n == 1) { //边界条件 return 1; } else { return n * f(n-1); //递归 } }
java简单计算器,实现加减乘除,接收用户循环输入
import java.util.Scanner;
/**
* Calculator 实现计算器功能(+,—,*,/)
*/
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("两个数加法请输入 add:");
System.out.println("两个数减法请输入 sub:");
System.out.println("两个数乘法请输入 mul:");
System.out.println("两个数除法请输入 div:");
System.out.println("结束请输入 end:");
String operator = scanner.next();
switch (operator) {
case "add":
System.out.println("请输入第一个数:");
double a1 = scanner.nextDouble();
System.out.println("请输入第二个数:");
double b1 = scanner.nextDouble();
System.out.println("两数和为:"+add(a1,b1));
break;
case "sub":
System.out.println("请输入第一个数:");
double a2 = scanner.nextDouble();
System.out.println("请输入第二个数:");
double b2 = scanner.nextDouble();
System.out.println("两数差为:"+sub(a2,b2));
break;
case "mul":
System.out.println("请输入第一个数:");
double a3 = scanner.nextDouble();
System.out.println("请输入第二个数:");
double b3 = scanner.nextDouble();
System.out.println("两数乘积为:"+multi(a3,b3));
break;
case "div":
System.out.println("请输入第一个数:");
double a4 = scanner.nextDouble();
System.out.println("请输入第二个数:");
double b4 = scanner.nextDouble();
System.out.println("两数商为:"+div(a4,b4));
break;
case "end":
System.out.println("程序已结束!");
return;
default:
break;
}
}
}
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 multi(double a, double b) {
return a * b;
}
public static double div(double a, double b) {
return a / b;
}
}