JAVA--速度计算

【介绍】

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

【分析】

(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);
}

2.定义了一个Bike类并实现了Common接口,在Bike类中对getSpeed()方法方法进行了重写。

public class Bike  implements Common{
 @Override
 public double getSpeed(double a,double b,double c) {
  return  a*b/c;
 }
}

3.定义了一个Plane类并实现了Common接口,在Plane类中对getSpeed()方法进行了重写。

public class Plane  implements  Common{
@Override
 public  double getSpeed(double a , double b, double c){
 return  a+b+c;
}
}
import java.util.Scanner;
public class CaculateSpeed {
 public  static  void 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();
   }
 }
}

你可能感兴趣的:(#,安然-university,study,javase学习,intellij-idea,java)