多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
接下来我们要实现一个计算器的功能,需要计算的数则在控制台输入,并计算出结果 **知识点:** java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数... ``` import java.util.Scanner; public class day01_object_oriented1{ public double add(double num1,double num2){ return num1 + num2; } public double reduce(double num1,double num2){ return num1 - num2; } public double ride(double num1,double num2){ return num1 * num2; } public double except(double num1,double num2){ return num1 / num2; } public static void main(String [] args){ double a = 10; double b = 3022; day01_object_oriented1 obj = new day01_object_oriented1(); System.out.println(obj.add(a,b)); } } ``` 这里有一个问题,就是被计算的参数已经被我们写死,所以复用性极低,那么有没有参数可以我们随时手动输入所要计算的参数的方法?答案是肯定的,看下文 <b> <b> ## **Scanner** **Scanner是一个基于正则表达式的文本扫描器~~可以从文件,输入流,字符串中解析出基本类型和字符串类型的值。Scanner类提供了多个构造器,不同的构造器可以接受文件,输入流,字符串作为数据源,用于从文件,输入流字符串中解析数据。** ``` //创建Scanner对象 //System.in表示标准化输出,也就是控制台输出 Scanner sc = new Scanner(System.in); ``` ``` //利用hasNextXXX()判断是否还有下一输入项 while (sc.hasNext()) { ``` ``` //利用nextXXX()方法输出内容 String str = sc.next(); System.out.println(str); ``` **计算器案例改造:** ``` import java.util.Scanner; public class day01_object_oriented1{ public double add(double num1,double num2){ return num1 + num2; } public double reduce(double num1,double num2){ return num1 - num2; } public double ride(double num1,double num2){ return num1 * num2; } public double except(double num1,double num2){ return num1 / num2; } public static void main(String [] args){ // 先实例化一个计算对象 day01_object_oriented1 obj = new day01_object_oriented1(); // 在实例化一个控制台扫描对象 Scanner sr = new Scanner(System.in); //获取第一个数 System.out.println("请输入第一个数:"); double nextdou = sr.nextDouble(); // nextDouble扫描,它会自动扫描控制台并且符合double类型的数据源 // 获取运算符 System.out.println("请选择运算符:"); String str = sr.next(); // 获取第二个数 System.out.println("请输入第二个数:"); double nextdou2 = sr.nextDouble(); double result = 0; if ("+".equals(str)){// equals会判断较字符串中所包含的内容是否相同。 result = obj.add(nextdou,nextdou2); }else if("-".equals(str)){ result = obj.reduce(nextdou,nextdou2); }else if ("*".equals(str)){ result = obj.ride(nextdou,nextdou2); }else if("/".equals(str)){ result = obj.except(nextdou,nextdou2); } System.out.println("计算结果:" + result); } } ```