6.方法
知识小店:
方法的原子性: 一个方法只完成一个功能,这样利于后期的扩展
package com.lin.study.method;
public class Demo01 {
public static void main(String[] args) {
int sum = add(1,2);//此处为实际参数: 实际调用传递的参数
System.out.println(sum);
}
//定义一个加法
public static int add(int a,int b){ //此处为形式参数: 用来定义作用的
return a + b;
}
}
2.方法的定义和调用
知识小店: return有终止方法的作用
package com.lin.study.method;
public class Demo02 {
public static void main(String[] args) {
int max = max(20, 50);
System.out.println(max);
}
//定义一个比较大小的方法
public static int max(int num1,int num2){
int result = 0;
if(num1 == num2){
System.out.println("num1 == num2");
return 0;//return有终止方法的作用
}
if(num1 > num2){
result = num1;
}else{
result = num2;
}
return result;
}
}
运行结果:
50
Process finished with exit code 0
3.方法的重载
方法重载的规则:
-
方法名必须相同。
-
参数列表必须不同(个数不同,类型不同,或参数排列顺序不同等)
-
仅仅是返回类型不同,不足以构成方法的重载
eg: public static int max(int a,int b){...}
eg: public static int max(double a,double b){...}
eg: public static int max(int a,int b,int c){...}
4.可变参数
知识小店: 一个方法中只能指定一个可变参数,
且必须是方法的最后一个参数,任何普通的参数必须在这之前声明。
package com.lin.study.method;
public class Demo03 {
public static void main(String[] args) {
//调用可变参数的方法
printMax();
printMax(55,66,99,56,2,6,7);
printMax(new double[]{1,2,3});
}
public static void printMax(double... a){
if(a.length == 0){
System.out.println("没有参数!");
return;
}
//排序
double result = a[0];
for(int i = 1;i < a.length;i++){
if(a[i] > result){
result = a[i];
}
}
System.out.println("最大值为: " + result);
}
}
运行结果:
没有参数! 最大值为: 99.0 最大值为: 3.0
Process finished with exit code 0
5.递归
package com.lin.study.method;
public class Demo04 {
public static void main(String[] args) {
//递归思想:(适用于小数值计算)
System.out.println(f(3));
}
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
}
6.作业:计算器(我自己写的)
package com.lin.study.method;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("程序已启动,请输入第一个数: ");
double x = sc.nextDouble();
System.out.println("请输入+-*/中的其中一种运算符: ");
String str = sc.next();
System.out.println("请输入第二个数: ");
double y = sc.nextDouble();
System.out.println("运算结果为: ");
switch(str){
case "+":
System.out.println(x + y);break;
case "-":
System.out.println(x - y);break;
case "*":
System.out.println(x * y);break;
case "/":
System.out.println(x / y);break;
default:
System.out.println("语法错误!");
}
}
}
运行结果:
程序已启动,请输入第一个数: 5 请输入+-*/中的其中一种运算符: + 请输入第二个数: 5 运算结果为: 10.0

浙公网安备 33010602011771号