0x00
本篇的大致目录
0x01 什么是方法
System.out.printIn()
类 对象 方法
原子性:一个方法只完成一个功能
0x02 方法的定义与调用
方法很像是其它语言的函数
方法调用的两种方式
实例:比大小
java是值传递,和引用传递
0x03 方法的重载
方法可以重名,参数要不同
0x04 命令行传参
这个时候回退到src,然后调用demo3
一定要到包的路径再去传参执行
0x05 可变参数
可以穿任意数量的参数
这里用了第二种调用方法的方式
可变参数就允许传任意数量的参数
0x06 递归
就是自己调用自己
递归会产生很大的时间开销,和对栈的占用
能不用递归,就不用递归
主要是学习他的思想
0x07 练习:实现简单的计算器
备注:第二天蓝帽半决赛要早期,所以就只写了最简单的一次功能,尚未找大佬的代码对比学习过
package Method;
import java.util.Scanner;
public class Calc {
public static void main(String[] args) {
System.out.println("==============calc v-1.0 start==============");
Scanner scanner = new Scanner(System.in);
//先实现一次的计算
System.out.println("input first num");
double a = scanner.nextDouble();
double b;
System.out.println("chose method");
Character flag = scanner.next().charAt(0);
/*
* 你可以从Scanner.next获取第一个字符:
char c = reader.next().charAt(0);
要使用恰好一个字符,您可以使用:
char c = reader.findInLine(".").charAt(0);
要严格使用一个字符,您可以使用:
char c = reader.next(".").charAt(0);*/
System.out.println("Input next num:");
switch (flag){
case '+':
b = scanner.nextDouble();
System.out.print("Answer: "+plus(a,b));
break;
case '-':
b = scanner.nextDouble();
System.out.print("Answer: "+minius(a,b));
break;
case '*':
b = scanner.nextDouble();
System.out.print("Answer: "+multi(a,b));
break;
case '/':
b = scanner.nextDouble();
System.out.print("Answer: "+divided(a,b));
break;
default:
System.out.println("参数输入错误");
}
}
public static double plus(double a,double b){
return (a+b);
}
public static double minius(double a,double b){
return(a-b);
}
public static double multi(double a,double b){
return(a*b);
}
public static double divided(double a,double b){
return(a/b);
}
}