为了账号安全,请及时绑定邮箱和手机立即绑定

DaDaCarRentalSystem。关于抽象类和接口,还是有不太理解的地方,还需要继续学习啊~~

package com.lf;

//构造一个车的抽象类
public abstract class Car {
	private int number;
	private String carName;
	private int rentMoney;
	private String capacity;

	public int getNumber() {
		return number;
	}

	public void setNumber(int number) {
		this.number = number;
	}

	public String getCarName() {
		return carName;
	}

	public void setCarName(String carName) {
		this.carName = carName;
	}

	public int getRentMoney() {
		return rentMoney;
	}

	public void setRentMoney(int rentMoney) {
		this.rentMoney = rentMoney;
	}

	public abstract String getCapacity();

	public void setCapacity(String capacity) {
		this.capacity = capacity;
	}

	@Override
	public String toString() {
		return number + ". " + carName + "  " + rentMoney + "  "
				+ this.getCapacity();
	}

}
package com.lf;

//货车载货量的接口
public abstract interface ICarryGoods {
	//载货量
	public abstract String carryGoods();

}
package com.lf;
//客车载客量的接口
public interface ICarryPassenger {
	//客车载客量
	public abstract String carryPassenger();

}
package com.lf;
//客车
public class PassengerCar extends Car implements ICarryPassenger {

	public int passengerCapcity;
	public PassengerCar(int number, String carName,int rentMoney,int capacityNum) {
		this.setNumber(number);
		this.setCarName(carName);
		this.setRentMoney(rentMoney);
		this.passengerCapcity = capacityNum;
	}
	public int getPassengerCapcity() {
		return passengerCapcity;
	}
	public void setPassengerCapcity(int passengerCapcity) {
		this.passengerCapcity = passengerCapcity;
	}
	public String getCapacity(){
		return carryPassenger();
		
	}
	@Override
	public String carryPassenger() {
		return "载人:" + this.passengerCapcity + "人";
	}

}
package com.lf;
//货车
public class GoodsCar extends Car implements ICarryGoods {

	private int goodsCapacity;
	public int getGoodsCapacity() {
		return goodsCapacity;
	}
	public void setGoodsCapacity(int goodsCapacity) {
		this.goodsCapacity = goodsCapacity;
	}
	
	public String getCapacity(){
		return this.carryGoods();
	}
	
	public GoodsCar(int number, String carName,int rentMoney,int capacityNum) {
		this.setNumber(number);
		this.setCarName(carName);
		this.setRentMoney(rentMoney);
		this.goodsCapacity = capacityNum;
	}
	@Override
	public String carryGoods() {
		return "载货:" + this.goodsCapacity + "吨";
	}
	

}
package com.lf;
//皮卡车,即可载货,又可载人
public class PicaCar extends Car implements ICarryGoods, ICarryPassenger {
	private int goodsCapacity;
	private int passengerCapacity;
	
	public PicaCar(int number, String carName,int rentMoney,int goodsCapNum,int passengerCapNum) {
		this.setNumber(number);
		this.setCarName(carName);
		this.setRentMoney(rentMoney);
		this.goodsCapacity = goodsCapNum;
		this.passengerCapacity = passengerCapNum;
	}

	public int getGoodsCapacity() {
		return goodsCapacity;
	}

	public void setGoodsCapacity(int goodsCapacity) {
		this.goodsCapacity = goodsCapacity;
	}

	public int getPassengerCapacity() {
		return passengerCapacity;
	}

	public void setPassengerCapacity(int passengerCapacity) {
		this.passengerCapacity = passengerCapacity;
	}
	
	public String getCapacity(){
		return carryGoods()+carryPassenger();
		
	}

	@Override
	public String carryPassenger() {
		return "载人:" + this.passengerCapacity + "人:";
	}

	@Override
	public String carryGoods() {
		return "载货:" + this.goodsCapacity + "吨:";

	}

}
package com.lf;
//租车系统
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class DaDaRental {

	public static void main(String[] args) {
		System.out.println("***请问您是否需要租车?是/否(1/0)");

		Scanner sc = new Scanner(System.in);
		if (sc.nextInt() == 0) {
			System.out.println("感谢您使用本系统,欢迎您下次选购,谢谢!");
		} else {
			System.out.println("***可选车类型和价目表如下:");
			ArrayList<Car> cars = saveCars();
			System.out.println("序号    汽车名称     租金(元/月)        容量 ");
			Iterator<Car> it = cars.iterator();
			while (it.hasNext()) {
				System.out.println(it.next().toString() + "");
			}

			System.out.println("***请输入租车数量(不超过" + cars.size() + "辆)");
			int choseNum = sc.nextInt();
			int[] carNums = new int[choseNum];
			for(int i=0;i<choseNum;i++){
				System.out.println("***请输入第"+(i+1)+"辆车的序号:");
				carNums[i] = sc.nextInt();
				
			}
			System.out.println("***您选择的车为:");
			for(int i :carNums){
				System.out.println(cars.get(i-1).toString());
			}
			System.out.println("请输入租车天数:");
			int rentDay = sc.nextInt();
			System.out.println("***您的账单为:");
			
			
			//统计可载人车辆和载人总数
			System.out.println("****可载人的车有:");
			int totalPassengers = 0;
			for(int i :carNums){
				if(cars.get(i-1) != null&&(cars.get(i-1) instanceof PassengerCar|| cars.get(i-1) instanceof PicaCar)){
					System.out.print(cars.get(i-1).getCarName()+"   ");
					if(cars.get(i-1) instanceof PassengerCar){
						PassengerCar pasCar = (PassengerCar)cars.get(i-1);
						totalPassengers += pasCar.getPassengerCapcity();
					}
					if(cars.get(i-1) instanceof PicaCar){
						PicaCar picaCar = (PicaCar)cars.get(i-1);
						totalPassengers += picaCar.getPassengerCapacity();								
					}				
				}
			}
			System.out.println("总载人数:"+totalPassengers+"人");
			
			//统计可以载货的车和总载货数
			System.out.println();
			System.out.println("****可载货的车有:");
			int totalGoods = 0;
			for(int i :carNums){
				if(cars.get(i-1) != null&&(cars.get(i-1) instanceof GoodsCar|| cars.get(i-1) instanceof PicaCar) ){
					System.out.print(cars.get(i-1).getCarName()+"   ");
					if(cars.get(i-1) instanceof GoodsCar){
						GoodsCar pasCar = (GoodsCar)cars.get(i-1);
						totalGoods += pasCar.getGoodsCapacity();
					}
					if(cars.get(i-1) instanceof PicaCar){
						PicaCar picaCar = (PicaCar)cars.get(i-1);
						totalGoods += picaCar.getGoodsCapacity();								
					}
				}
			}
			System.out.println("总载货数:"+totalGoods+"吨");
			
			//统计所选车的总租金
			System.out.println();
			int totalMoney = 0;
			for(int i :carNums){
				totalMoney += cars.get(i-1).getRentMoney();
			}
			System.out.println("***总租金为:"+totalMoney*rentDay);
		}

	}

	public static ArrayList<Car> saveCars() {

		ArrayList<Car> cars = new ArrayList<Car>();

		Car passengerCar1 = new PassengerCar(1,"奥迪A4",500,4);
		cars.add((Car) passengerCar1);
		Car goodsCar1 = new GoodsCar(2,"马自达", 400, 4);
		cars.add(goodsCar1);
		Car picaCar1 = new PicaCar(3,"东风汽车",450,4,5);
		cars.add((Car) picaCar1);
		Car passengerCar2 = new PassengerCar(4,"奥迪A8",300,4);
		cars.add((Car) passengerCar2);

		return cars;

	}
}


正在回答

3 回答

为嘛,都是LISt 才能写出来挖,想看新手写的。。。

0 回复 有任何疑惑可以回复我~

大神都用到 list了~~

0 回复 有任何疑惑可以回复我~

终于写出来了,略有成就感啊~~:)

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

DaDaCarRentalSystem。关于抽象类和接口,还是有不太理解的地方,还需要继续学习啊~~

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信