首页 > IT职业 > IT图书 > Java第二季租车系统参考
首先创建一个汽车的抽象类CarStore,里面包含汽车的编号ID,车名Name以及价格Price,并且创建set和get方法。
package cw.lojako.carrent;
public abstract class CarStore {
private int id;
private String name;
private double price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
之后我们可以创建两个接口,载客量(CarryingPeople),载货量(CarryingGoods)。
这里引出一个问题:什么时候用接口呢?就是一个功能并不是所有对象都拥有时,可以把这个功能写进接口中,如若该对象需要此功能则实现该接口即可。就拿我们这个例子而言,货车的载货功能客车并不具备,所以需要用接口来实现。
接口(CarryingPeople)
package cw.lojako.carrent;
public interface CarryingPeople {
public void setPeople(int n);
public int getPeople();
}
接口(CarryingGoods)
package cw.lojako.carrent;
public interface CarryingGoods {
public void setGoods(int n);
public int getGoods();
}
第三步就是创建客车类,货车类,皮卡类并继承抽象类CarStore,实现相对应的接口。代码如下:
客车类(Car.java)
package cw.lojako.carrent;
public class Car extends CarStore implements CarryingPeople{
private int people;
//初始化值
public Car(int id,String name,double price,int people){
super.setId(id);
super.setName(name);
super.setPrice(price);
this.setPeople(people);
}
@Override
public void setPeople(int people) {
this.people = people;
}
@Override
public int getPeople() {
return people;
}
@Override
public String toString() {
return "编号:"+super.getId()+"t"+"车名:"+super.getName()+"t"+"价格:"+super.getPrice()+"元/天t"+"载客量:"+this.getPeople()+"人";
}
} 货车类(Van)
package cw.lojako.carrent;
public class Van extends CarStore implements CarryingGoods {
private int goods;
//初始化值
public Van(int id,String name,double price,int goods){
super.setId(id);
super.setName(name);
super.setPrice(price);
this.setGoods(goods);
}
@Override
public void setGoods(int goods) {
this.goods = goods;
}
@Override
public int getGoods() {
return goods;
}
@Override
public String toString() {
return "编号:"+super.getId()+"t"+"车名:"+super.getName()+"t"+"价格:"+super.getPrice()+"元/天t"+"载货量:"+this.getGoods()+"T";
}
}
皮卡类(PickUp)
package cw.lojako.carrent;
public class PickUp extends CarStore implements CarryingGoods,CarryingPeople{
private int goods;
private int people;
//初始化值
public PickUp(int id,String name,double price,int people,int goods){
super.setId(id);
super.setName(name);
super.setPrice(price);
this.setPeople(people);
this.setGoods(goods);
}
@Override
public void setGoods(int goods) {
this.goods = goods;
}
@Override
public int getGoods() {
return goods;
}
@Override
public void setPeople(int people) {
this.people = people;
}
@Override
public int getPeople() {
return people;
}
@Override
public String toString() {
return "编号:"+super.getId()+"t"+"车名:"+super.getName()+"t"+"价格:"+super.getPrice()+"元/天t"+"载客量:"+this.getPeople()+"人"+" "+"载货量:"+this.getGoods()+"T";
}
} 最后一步是写主页面
package cw.lojako.carrent;
import java.util.Scanner;
public class RentSystem {
CarStore[] cars ={new Car(1,"奥迪A4",500,4),
new Car(2,"马自达",400,4),
new PickUp(3,"皮卡雪",450,4,20),
new Car(4,"保时捷",800,20),
new Van(5,"松花江",400,4),
new Van(6,"依维柯",1000,20)};
Scanner in = new Scanner(System.in);
public void rent(){
System.out.println("欢迎使用答答租车系统: n是否租车??? 1(是) 0(否)");
int input = in.nextInt();
if(input==1){
System.out.println("您可租车的类型和价目表: "+"n 序号"+"======"+"车名"+"==============="+"租金"+"==========="+"容量");
for(int i=0;i=cars.length||j 来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/756/viewspace-2799446/ ,如需转载,请注明出处,否则将追究法律责任。