一.方法到底是什么
方法是语句的集合,他们在一起执行一个功能。它包含于类或者对象中。
二.方法的定义和调用
1.定义: 修饰符+返回值类型+方法名+参数+方法体
例如:
public static int add(int a,int b){ return a+b; }
这就是一个简单的方法,传递进去两个参数,返回这两个数的和。
2.命名规则: 方法名的命名要遵守驼峰规则,及第一个单词全小写,之后每一个单词的首字母大写。
例如:studentScore、maxStudentScore
3.调用: 以上面的add方法为例,在主方法里面:
int sum=add(1,2);
System.out.println(sum);
输出结果为3
4.注意:
- 如果返回类型为void类型,不需要返回任何东西,即不需要写return x;
- 如果不是,需要返回符合返回类型的内容
- return 0;终止方法
三.方法的重载
什么是方法的重载?
方法的重载符合以下特点:
- 方法可以有无数个重名的,但是要保证参数列表不同
(个数不同或类型不同或参数排列顺序不同) - 方法的返回类型可以相同也可以不相同
例如:
public static void main(String[] args) {
int result1=add(1,2);
int result2=add(1,2,3);
int result3=add(1,2,3,4);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
}
public static int add(int a,int b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
public static int add(int a,int b,int c,int d){
return a+b+c+d;
}
输出结果为:
四.可变参数
1.什么是可变参数?
在指定参数类型后加一个省略号。
2.使用时要注意什么?
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在他之前声明。
例如:
public static void main(String[] args) {
Demo04 demo04 = new Demo04();
demo04.test(1);
demo04.test(1,2,3);
printMax(1,5,10,50,29,15);
}
public static void test(int... i){
System.out.println(i[0]);
}
public static void printMax(double... numbers){
if(numbers.length==0){
System.out.println("No argument passed");
return;
}
double result=numbers[0];
//排序
for (int i = 1; i < numbers.length; i++) {
if(numbers[i]>result){
result=numbers[i];
}
}
System.out.println("The max value is:"+result);
}
输出结果为:
五.递归
以一个输出阶乘的方法来理解递归:
public static int f(int n){
if(n==1){//边界条件
return 1;//返回阶段
}
else{
return n*f(n-1);//前阶段
}
}
可以从上面这个方法总结出一些递归的知识:
- 递归结构包括两个部分: 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环 递归体:什么时候需要调用自身方法
注意: 能不用递归就不用递归,因为递归很占空间。
六.应用
最后附上一个写的加减乘除计算器,算是一个小小的应用吧:
public class Demo06 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("本软件为加减乘除运算器:");
System.out.println("输入0跳转到加法,输入1跳转到减法,输入2跳转到乘法,输入3跳转到除法,输入4退出。");
System.out.println("请输入初始数据:");
double pro=input.nextInt();
int choose=5;
while(choose!=4){
System.out.println("请输入对应的数字来跳转到对应的功能:");
choose=input.nextInt();
switch (choose) {
case 0:
System.out.println("欢迎使用加法功能,请输入您想要加的数字:");
double pro1 = input.nextInt();
pro = add(pro, pro1);
System.out.println("您当前的结果为:" + pro);
break;
case 1:
System.out.println("欢迎使用减法功能,请输入您想要减的数字:");
double pro2 = input.nextInt();
pro = minus(pro, pro2);
System.out.println("您当前的结果为:" + pro);
break;
case 2:
System.out.println("欢迎使用乘法功能,请输入您想要乘的数字:");
double pro3 = input.nextInt();
pro = multiple(pro, pro3);
System.out.println("您当前的结果为:" + pro);
break;
case 3:
System.out.println("欢迎使用除法功能,请输入您想要除以的数字:");
double pro4 = input.nextInt();
pro = division(pro, pro4);
System.out.println("您当前的结果为:" + pro);
break;
default:
System.out.println("已退出计算器,感谢您的使用。");
break;
}
}
}
public static double add(double a,double b){
double result=a+b;
return result;
}
public static double minus(double a,double b){
double result=a-b;
return result;
}
public static double multiple(double a,double b){
double result=a*b;
return result;
}
public static double division(double a,double b){
double result=a/b;
return result;
}
}