方法
基本语法
修饰符 返回值类型 方法名(参数类型,参数名){
…
方法体
…
return 返回值;
}
修饰符:private:私有修饰符 default 默认修饰符 static 公共修饰符 protected 受保护修饰符 等
返回值类型:int、void,如果没有用void(表示空)
package com.wang.Method;
public class Demo01 {
public static void main(String[] args) {
int max=max(10,20);
System.out.println(max);
}
public static int max(int m,int n){
int result=0;
if(m>n){
result=m;
}else if(m<n){
result=n;
}
return result;
}
}
拓展
键盘输入两个数字,调用max方法实现比较大小
package com.wang.Method;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘输入
Scanner scanner = new Scanner(System.in);
//请输入数字
System.out.println("请输入数字:");
//把数字从键盘输入的两个数,并赋值给啊a,b
int a = scanner.nextInt();
int b = scanner.nextInt();
//调用max方法
int max = max(a, b);
//输出max中的最大值
System.out.println(max);
//关闭键盘输入
scanner.close();
}
//创建max方法
public static int max(int m,int n){
//初始化结果
int result=0;
//判断大小
if(m>n){
result=m;
}else if(m<n){
result=n;
}
//返回结果的值
return result;
}
}
方法重载
基本规则
a.方法名称必须相同
b.参数列表必须不同(个数不同、类型不同、参数排列顺序不同)
递归
递归结构包括两个部分
递归头:什么时候不调用自身方法!
//n!递归方法调用,键盘输入!
package com.wang.Method;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘输入
Scanner scanner = new Scanner(System.in);
//请输入数字
System.out.println("请输入数字:");
//获取输入的数字赋值给a
int a= scanner.nextInt();
//输出f(a)
System.out.println(f(a));
}
//创建递归方法,n!
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
}
递归体:什么时候调用自身方法!
作业
编写计算器:要求1.加减乘除。2.循环接收新的数据。3.通过用户交互实现
思路:1.写加减乘除四个方法。2.利用循环Switch进行用户交互。3.传递需要操作的两个数。4.输出出结果。
package com.wang.Method;
import java.util.Scanner;
public class WorkCalculator {
public static void main(String[] args) {
while(true) {
//创建一个扫描器对象,用于接受键盘上的输入
Scanner scanner = new Scanner(System.in);
System.out.println("请输入需要运算的运算符:(退出请输入quit)");
//运算符
String s=scanner.next();
if (s.equals("quit")) {
System.out.println("退出当前计算器");
break;
} else {
System.out.println("请输入计算的两个数,输入一个数之后按回车,再输入另外一个数。");
}
//把键盘输入的赋值
Scanner scanner1 = new Scanner(System.in);
double a=scanner1.nextDouble();
Scanner scanner2 = new Scanner(System.in);
double b=scanner2.nextDouble();
//调用加减乘除的方法
double result=0;
switch(s){
case "+":
result=add(a,b);
break;
case "-":
result=sub(a,b);
break;
case "*":
result=mul(a,b);
break;
case "/":
result=divide(a,b);
break;
default :
System.out.println("请重新输入:");
}
System.out.println(a + s + b + "=" + result);
}
}
//加法
public static double add(double m,double n){
return m+n;
}
//减法
public static double sub(double m,double n){
return m-n;
}
//乘法
public static double mul(double m,double n){
return m*n;
}
//除法
public static double divide(double m,double n){
return m/n;
}
}