【介绍】 1.描述
本案例要求使用反射技术编写一个速度计算程序,计算某种交通工具的行驶速度。现有两种工具:Bike和 Plane,其中Bike的速度运算公式为:A*B/C,Plane的速度运算公式为:A+B+C。用户可通过输入交通工具名称选择自己想要使用的交通工具,选择交通工具之后,自动计算出该交通工具的行驶速度。此外,在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序即可。
2.运行结果
文章图片
【分析】 (1)通过任务描述可知,有两种交通工具Plane和Bike:Plane类、Bike类。
(2)由于任务要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序,故还需要编写一个接口Common,且Plane类和Bike类都继承Common接口。
(3)最后编写一个测试类CaculateSpeed,在main()方法中,编写程序,提示用户输入自己想要使用的交通工具,并利用反射来计算交通工具的速度。
【实现过程】 1.定义了一个Common接口,在Common接口中定义了一个抽象方法getSpeed()。
public interface Common {
double getSpeed(double a , double b, double c);
}
【#|JAVA--速度计算】2.定义了一个Bike类并实现了Common接口,在Bike类中对getSpeed()方法方法进行了重写。
public class Bikeimplements Common{
@Override
public double getSpeed(double a,double b,double c) {
returna*b/c;
}
}
3.定义了一个Plane类并实现了Common接口,在Plane类中对getSpeed()方法进行了重写。
public class PlaneimplementsCommon{
@Override
publicdouble getSpeed(double a , double b, double c){
returna+b+c;
}
}
import java.util.Scanner;
public class CaculateSpeed {
publicstaticvoid main(String []args){
Scanner in = new Scanner(System.in);
System.out.println("请输入你要使用的交通工具:");
String choice = in.nextLine();
double a = 23 , b = 24 , c = 25;
try {
Common newtransport = (Common)
Class.forName(choice).newInstance();
System.out.println(choice +"\n" +"speed is :" + newtransport.getSpeed(a,b,c));
}
catch (InstantiationException e){
e.printStackTrace();
}
catch (IllegalAccessException e ){
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
推荐阅读
- java|SpringCloud+MySQL+Vue实现人脸识别智能考勤管理系统
- java|java GC常见面试题
- #|FPGA基础设计(三)(状态机(FSM))
- java|大学想要学习JAVA,发展前景如何,该从哪里开始()
- java开发|你觉得学 Python 还是 Java 更好找工作(2022最新分析指南。)
- Java/Android中的优先级任务队列的实践
- Spring Security实现基于RBAC的权限表达式动态访问控制
- LeetCode|98. 验证二叉搜索树
- 数据建模软件Chiner,颜值与实用性并存