#|JAVA--速度计算

【介绍】 1.描述
本案例要求使用反射技术编写一个速度计算程序,计算某种交通工具的行驶速度。现有两种工具:Bike和 Plane,其中Bike的速度运算公式为:A*B/C,Plane的速度运算公式为:A+B+C。用户可通过输入交通工具名称选择自己想要使用的交通工具,选择交通工具之后,自动计算出该交通工具的行驶速度。此外,在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序即可。
2.运行结果
#|JAVA--速度计算
文章图片

【分析】 (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(); } } }

    推荐阅读