業務:計算價格、計算載人量、計算載貨量;
代碼實現:Calc接口、Car類、各種車型類繼承Car類
接口Calc:
package com.dadataxi;
public interface Calc {
public double calcPrice(int days,int num);
public int calcPersons(int num);
public double calcGoods(int num);
} Car類,实现接口calc;
package com.dadataxi;
public class Car implements Calc{
public String name; //车名
public double price;//租车价格
public int persons;//载客量
public double goods;//载货量
public boolean isPerson;//是否可载人
public boolean isGood;//是否可载货
/**
* @param days 租车天数
* @param num 租车数量
* @return double类型 某种类型车租车总价
*/
@Override
public double calcPrice(int days,int num) {
// TODO Auto-generated method stub
return price*days*num;
}
/**
* @param num 租车数量
* @return int类型 某种类型车可乘坐人数
*/
@Override
public int calcPersons(int num) {
// TODO Auto-generated method stub
return persons*num;
}
/**
* @param num 租车数量
* @return int类型 某种类型车可载货量
*/
@Override
public double calcGoods(int num) {
// TODO Auto-generated method stub
return goods*num;
}
}
载人车辆:
package com.dadataxi;
public class PersonCar extends Car{
//使用构造函数初始化车辆属性
public PersonCar(String name,double price,int persons) {
this.name = name;
this.price = price;
this.persons = persons;
this.isPerson = true;
}
//使用toString方法输出
public String toString() {
return name+"t"+price+"\天"+"t"+"载人:"+persons+"人";
}
} 皮卡车型:
package com.dadataxi;
public class PiKa extends Car {
//使用构造函数初始化车辆属性
public PiKa(String name,double price,int persons,double goods) {
this.name = name;
this.price = price;
this.persons = persons;
this.isPerson = true;
this.isGood = true;
this.goods = goods;
}
//使用toString方法输出
public String toString() {
return name+"t"+price+"\天"+"t"+"载人:"+persons+"人"+"载货:"+goods+"吨";
}
} 货车类
package com.dadataxi;
public class HuoChe extends Car{
//使用构造函数初始化车辆属性
public HuoChe(String name,double price,double goods) {
this.name = name;
this.price = price;
this.goods = goods;
this.isGood = true;
}
//使用toString方法输出
public String toString() {
return name+"t"+price+"\天"+"t"+"载货:"+goods+"吨";
}
} 主函数
package com.dadataxi;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class UserInter {
public static void main(String[] args) {
// TODO Auto-generated method stub
double totalPrice = 0;//订单总价格
int totalPersons = 0;//订单总可坐人数
double totalGoods = 0;//订单总可载货量
Set carPersons = new HashSet();//存储载人车辆
Set carGoods = new HashSet();//存储载货车辆
Car cars[] = { new PersonCar("奥迪A4", 500.0, 4), new PiKa("皮卡", 200, 2, 1.2),
new HuoChe("东风大货", 1000, 20) };//引用Car类型数组变量存储车辆
//用户交互代码
//获取用户输入
Scanner in = new Scanner(System.in);
System.out.println("--------欢迎使用答答租车系统--------");
System.out.println("您是否要租车:1 是,2 否");
String result = in.next();
if (result.equals("1")) {
System.out.println("序号" + "t" + "汽车名称" + "t" + "租金" + "t" + "容量" + "t");
for (int i = 0; i 0) {
System.out.println("---可载人车辆有:---");
for (String name : carPersons) {
System.out.print(name + "t");
}
System.out.print(totalPersons + "人" + "n");
}
if (carGoods.size() > 0) {
System.out.println("---可载货车辆有:---");
for (String name : carGoods) {
System.out.print(name + "t");
}
System.out.print(totalGoods + "吨" + "n");
}
System.out.println("---您的租车总价格:" + totalPrice + "元");
} else if (result.equals("2")) {
System.out.println("退出答答租车系统");
System.exit(0);
} else {
System.out.println("请输入正确的指令");
}
}
} 有问题请多多指教