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

老师,我的思路对吗?

1、创建两个接口(载客接口A-载客量)、(载货接口B-载货量),载客和货接口C extend 载客接口A,载货接口B(载客量、载货量),一个抽象父类Car(车型、单价-->元/天);
2、实现-卡车类 extend 父类Car implement 载货接口B;
    实现-客车类 extend 父类Car implement 载客接口A;
    实现-皮卡类 extend 父类Car implement 载客和货接口C;
3、租车系统类:一维数组 实例化 卡车对象、客车对象 和 皮卡对象;
4、客户选车、分类汇总车辆后,输出租车明细与总价。

正在回答

8 回答

方法有很多种 你这样也行 

载客和货接口C 就不需要了 直接实现a,b就好了 实现是可以多实现的

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

睿智狂人 提问者

非常感谢!
2015-12-11 回复 有任何疑惑可以回复我~

写的好精辟,大神你学多久了?实现的面向对象思想与其他人貌似不同。

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

睿智狂人 提问者

我叫菜鸟,具体时长是两个月除开周末工作日的晚上两小时!
2016-01-06 回复 有任何疑惑可以回复我~

你写的我没有看懂


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

package com.imooc.carRental;


import java.util.Scanner;


public class rentCarSystem {


private Scanner sc = new Scanner(System.in);

public static final Car[] c = { new passengerCar("aodi-A8", 7, 600), new passengerCar("aodi-A4", 5, 400),

new passengerCar("aodi-TT", 2, 500), new passengerCar("aodi-R8", 7, 1000),

new passengerCar("aodi-X8", 9, 900), new truckCar("dongfeng",13,1200), new pickupCar("GMC-12KZ",30,8,2000) };


public rentCarSystem() {

this.println("欢迎使用哒哒租车系统!");

this.dDif();

}


public static void main(String[] args) {


new rentCarSystem();


}


// 输出信息:

private void println(String s) {

System.out.println(s);

}


// 输入信息:

private int scanner() {

return sc.nextInt();

}


// 显示租车信息

private void printCar() {

for (int i = 0; i < rentCarSystem.c.length; i++) {

System.out.println(i + 1 + ". " + c[i]);

}

}


// 询问是否租车?

private int yNRentCar() {

this.println("您是否要租车? 1、是  ,0、否");

return scanner();

}


// 判断是否进入哒哒租车系统:

private void dDif() {

int input = yNRentCar();

if (input == 1) {

this.println("您可租车的类型及价目表:");

this.println("序号  洗车名称  容量         单价");

this.printCar();// 显示租车信息

this.chooseCar();// 用户选车

} else if (input == 0) {

this.println("欢迎下次光临!");

} else {

this.println("输入错误!");

this.dDif();

}

}


// 用户选车与租车天数:

private void chooseCar() {


int xh = 0;

this.println("请输入您要租汽车的数量:");

int rentCarNum = scanner();

// 将来补充,判断是否为数字?

Car[] xc = new Car[rentCarNum];


for (int i = rentCarNum, j = 1; i > 0; i--, j++) {

this.println("请输入第" + j + "辆车的序号:");

xh = scanner();

xc[j - 1] = c[xh - 1];

}


this.println("请输入租车天数:");

int tNum = scanner();


this.settlement(xc, tNum);

}


// 用户结算

private void settlement(Car[] xc, int tNum) {

this.println("您的账单:");

double d = 0;


String s = "  ";

long p = 0;

for (int i = 0; i < xc.length; i++) {

if (xc[i].getClass() == passengerCar.class) {

s += xc[i].getModels() + "  ";

passengerCar pc = (passengerCar) xc[i];

p += pc.getPassNum();

d += xc[i].getUnitprice() * tNum;

}


}

if (s != "  ") {

this.println("***可载人的车有:");

System.out.println(s + "租车天数为:" + tNum + "天   " + "共计装载 " + p + "人");

}


s = "  ";

long t = 0;

for (int i = 0; i < xc.length; i++) {

if (xc[i].getClass() == truckCar.class) {

s += xc[i].getModels() + "  ";

truckCar tc = (truckCar) xc[i];

t += tc.getCargNum();

d += xc[i].getUnitprice() * tNum;

}


}

if (s != "  ") {

this.println("***可载货的车有:");

System.out.println(s + "租车天数为:" + tNum + "天   " + "共计载货 " + t + "吨");

}

s = "  ";

   t = 0;

   p = 0;

for (int i = 0; i < xc.length; i++) {

if (xc[i].getClass() == pickupCar.class) {

s += xc[i].getModels() + "  ";

pickupCar kc = (pickupCar) xc[i];

p += kc.getPassNum();

t += kc.getCargNum();

d += xc[i].getUnitprice() * tNum;

}


}

if (s != "  ") {

this.println("***可载货、載人的车有:");

System.out.println(s + "租车天数为:" + tNum + "天   " + 

"共计载货 " + t + "吨" + "  共计装载 " + p + "人");

}

System.out.println("***租车总价格:"+d+"元");

}


}



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

欢迎使用哒哒租车系统!

您是否要租车? 1、是  ,0、否

1

您可租车的类型及价目表:

序号  洗车名称  容量         单价

1. aodi-A8 7 600.0

2. aodi-A4 5 400.0

3. aodi-TT 2 500.0

4. aodi-R8 7 1000.0

5. aodi-X8 9 900.0

6. dongfeng 13 1200.0

7. GMC-12KZ 30 8 2000.0

请输入您要租汽车的数量:

3

请输入第1辆车的序号:

1

请输入第2辆车的序号:

3

请输入第3辆车的序号:

6

请输入租车天数:

6

您的账单:

***可载人的车有:

  aodi-A8  aodi-TT  租车天数为:6天   共计装载 9人

***可载货的车有:

  dongfeng  租车天数为:6天   共计载货 13吨

***租车总价格:13800.0元


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

Car[] c = {new passengerCar("aodi-A8",7,600), new passengerCar("aodi-A4",5,400), 

new passengerCar("aodi-TT",2,500), new passengerCar("aodi-R8",7,1000), 

new passengerCar("aodi-X8",9,900)};

for(int i=0;i<c.length;i++){

System.out.println(i+1+". "+c[i]);

}


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

Car c = new passengerCar("aodi-A8",7,600);

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

package com.imooc.carRental;


public class passengerCar extends Car implements passenger {


private long pn;

public passengerCar(){}

public passengerCar(String models, long pn, double unitprice){

//车型

this.setModels(models);

//载客量

this.setPassNum(pn);

//单价 -- 元/天

this.setUnitprice(unitprice);

}

@Override

public void setPassNum(long pn) {

// TODO Auto-generated method stub

        this.pn = pn;

}


@Override

public long getPassNum() {

// TODO Auto-generated method stub

return pn;

}


@Override

protected String getModels() {

// TODO Auto-generated method stub

return super.getModels();

}


@Override

protected void setModels(String models) {

// TODO Auto-generated method stub

super.setModels(models);

}


@Override

protected double getUnitprice() {

// TODO Auto-generated method stub

return super.getUnitprice();

}


@Override

protected void setUnitprice(double unitprice) {

// TODO Auto-generated method stub

super.setUnitprice(unitprice);

}


@Override

public String toString() {

return this.getModels()+" "+this.getPassNum()+" "+ this.getUnitprice();

}


}


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

举报

0/150
提交
取消

老师,我的思路对吗?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号