方法的定义
访问修饰符 返回类型 方法名称(参数){方法体}
public static void add(){}
方法的重载
/*
* 方法的重载:
* 1.方法名称必须相同
* 2.参数列表必须不同(个数不同,类型不同,排列顺序不同)
* 3.方法返回值可以相同
*
* */
public class Demo01 {
public static void main(String[] args) {
//实际参数
int max = max(10, 10);
System.out.println(max);
}
//比较大小 形式参数
public static int max(int a,int b){
int result=0;
if (a==b){
return 0;//return有终止程序的作用
}
if (a>b){
result = a;
}else {
result = b;
}
return result;
}
public static double max(double a,double b){
double result=0;
if (a==b){
return 0;//return有终止程序的作用
}
if (a>b){
result = a;
}else {
result = b;
}
return result;
}
public static double max(double a,double b,double c){
int result=0;
if (a==b){
return 0;//return有终止程序的作用
}
if (a>b){
result =(int) a;
}else {
result =(int) b;
}
return result;
}
}
return有终止程序的作用
可变参数
public static int add(double... n){}
递归
递归思想很重要,但方法不建议使用,容易造成内存溢出
public class Demo02 {
public static void main(String[] args) {
//递归思想
System.out.println(f(5));
}
public static int f(int n){
if (n == 1){
return 1;
}
return n*f(n-1);
}
}
案例:计算器
/**
* 计算器
*/
public class TestDemo {
public static void main(String[] args) {
double num1;
double num2;
String method;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字:");
num1 = scanner.nextDouble();
System.out.println("请输入运算符:");
method = scanner.next();
System.out.println("请输入第二个数字:");
num2 = scanner.nextDouble();
System.out.println("结果是:");
switch (method) {
case "+":
System.out.println(add(num1, num2));
break;
case "-":
System.out.println(cut(num1, num2));
break;
case "*":
System.out.println(mul(num1, num2));
break;
case "/":
System.out.println(div(num1, num2));
break;
}
scanner.close();
}
//加法
public static double add(double x, double y) {
double result = x + y;
return result;
}
//减法
public static double cut(double x, double y) {
double result = x - y;
return result;
}
//乘法
public static double mul(double x, double y) {
double result = x * y;
return result;
}
//除法
public static double div(double x, double y) {
double result = x / y;
return result;
}
}