写完了 可以参考参考
//载客+载货类
package com.imooc;
public class all extends car implements zaihuo, zaike {
private int zaihuo;
private int zaike;
public all( int zaihuo,int zaike, int price, String name){
super( price, name);
setzaihuo(zaihuo);
setzaike(zaike);
}
public void setzaike(int zaike) {
// TODO Auto-generated method stub
this.zaike=zaike;
}
@Override
public String toString() {
return "皮卡 [载货=" + zaihuo + "吨, 载客=" + zaike + "人]";
}
public int getzaike() {
// TODO Auto-generated method stub
return zaike;
}
public void setzaihuo(int zaihuo) {
// TODO Auto-generated method stub
this.zaihuo=zaihuo;
}
public int getzaihuo() {
// TODO Auto-generated method stub
return zaihuo;
}
}
//载货类
package com.imooc;
public class bighuoche extends car implements zaihuo {
private int zaihuo;
public bighuoche(int zaihuo, int price, String name){
super( price, name);
setzaihuo(zaihuo);
}
@Override
public String toString() {
if(zaihuo>=100)
return "大货车 [载货=" + zaihuo + "吨]";
else return "小货车 [载货=" + zaihuo + "吨]";
}
@Override
public void setzaihuo(int zaihuo) {
// TODO Auto-generated method stub
this.zaihuo=zaihuo;
}
@Override
public int getzaihuo() {
// TODO Auto-generated method stub
return zaihuo;
}
}
//载客类
package com.imooc;
public class bigkeche extends car implements zaike {
private int zaike;
public bigkeche(int zaike, int price, String name){
super( price, name);
this.zaike=zaike;
}
@Override
public void setzaike(int zaike) {
// TODO Auto-generated method stub
this.zaike=zaike;
}
@Override
public String toString() {
if(zaike>=50)
return "大客车 [载客=" + zaike + "人]";
else return "小客车 [载客=" + zaike + "人]";
}
@Override
public int getzaike() {
return zaike;
}
}
//载货接口
package com.imooc;
public interface zaihuo {
public void setzaihuo(int zaihuo);
public int getzaihuo();
}
//载客接口
package com.imooc;
public interface zaike {
public void setzaike(int zaike);
public int getzaike();
}
//汽车类
package com.imooc;
public class car {
private int price;
private String name;
public car(){}
public car(int price, String name){
this.price=price;
this.setName(name);
}
public car(int price){
this.price=price;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "car [price=" + price + ", name=" + name + "]";
}
}
//测试类
package com.imooc;
import com.imooc.car;
import com.imooc.bighuoche;
import java.util.Scanner;
public class test {
public static void caidan(all e,bighuoche a,bighuoche b,bigkeche c,bigkeche d){
System.out.println("序号 1. 车型:"+a.getName()+" 租金:"+a.getPrice()+" 载货:"+a.getzaihuo());
System.out.println("序号 2. 车型:"+b.getName()+" 租金:"+b.getPrice()+" 载货:"+b.getzaihuo());
System.out.println("序号 3. 车型:"+c.getName()+" 租金:"+c.getPrice()+" 载客:"+c.getzaike());
System.out.println("序号 4. 车型:"+d.getName()+" 租金:"+d.getPrice()+" 载客:"+d.getzaike());
System.out.println("序号 5. 车型:"+e.getName()+" 租金:"+e.getPrice()+" 载货:"+e.getzaihuo()+" 载客:"+e.getzaike());
}
public static int getnum(){
System.out.println("");
System.out.println("***猪多少两***");
Scanner input1=new Scanner(System.in);
int num=input1.nextInt();
return num;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
/*car a=new car(10);
car b=new car(100,"大货车");
bighuoche c=new bighuoche(100,100,"大货车");
System.out.println("wori");
System.out.println(a.getPrice());
System.out.println(b.getName());
System.out.println(c.getName());
*/
System.out.println("***是否进入租车系统 1.是 2.不是***");
Scanner input=new Scanner(System.in);
int into=input.nextInt();
System.out.println("");
if(into==1){System.out.println("***系统开始***");
System.out.println("");
all e=new all(90,10,1000,"皮卡");
bighuoche a=new bighuoche(150,500,"大货车");
bighuoche b=new bighuoche(70,100,"小货车");
bigkeche c=new bigkeche(100,300,"大客车");
bigkeche d=new bigkeche(10,90,"小客车");
//test t=new test();
caidan(e,a,b,c,d);
int num=getnum();
System.out.println("");
car[] cars=new car[num];
for(int i=0;i<num;i++)
{
System.out.println("选择第"+(i+1)+"两车");
int choose=input.nextInt();
switch (choose){
case 1: cars[i]=a;break;
case 2:cars[i]=b;break;
case 3: cars[i]=c;break;
case 4:cars[i]=d;break;
case 5: cars[i]=e;break;
}
}
System.out.println("");
System.out.println("");
System.out.println("***已经选择了的车的清单***");
for(int i=0;i<num;i++){
System.out.println(cars[i].toString()+"价格:"+cars[i].getPrice());
}
System.out.println("");
System.out.println("");
int x = 0,y = 0,z=0;
int zaihuosum=0;
int zaikesum=0;
int zujinsum=0;
for(int j=0;j<num;j++){
if(cars[j] instanceof bighuoche){x=1;}
if(cars[j] instanceof bigkeche){ y=1;}
if(cars[j] instanceof all){z=1;}
}
if(x==1){
System.out.println("***已经选择了货车的清单***");
for(int i=0;i<num;i++){
if(cars[i] instanceof bighuoche)
System.out.println(cars[i].toString()+"价格:"+cars[i].getPrice());
}
}
if(y==1){
System.out.println("");
System.out.println("");
System.out.println("***已经选择了客车的清单***");
for(int i=0;i<num;i++){
if(cars[i] instanceof bigkeche)
System.out.println(cars[i].toString()+"价格:"+cars[i].getPrice());
}
}
if(z==1){
System.out.println("");
System.out.println("");
System.out.println("***已经选择了皮卡的清单***");
for(int i=0;i<num;i++){
if(cars[i] instanceof all)
System.out.println(cars[i].toString()+"价格:"+cars[i].getPrice());
}
}
System.out.println("");
System.out.println("");
System.out.println("***总单***");
System.out.println("");
System.out.println("***载货量***");
for(int i=0;i<num;i++){
if(cars[i] instanceof zaihuo){
zaihuo huoche=(zaihuo)cars[i];
zaihuosum=zaihuosum+huoche.getzaihuo();
}
}
System.out.println(zaihuosum+"吨");
System.out.println("***载客量***");
for(int i=0;i<num;i++){
if(cars[i] instanceof zaike){
zaike huoche=(zaike)cars[i];
zaikesum=zaikesum+huoche.getzaike();
}
}
System.out.println(zaikesum+"人");
System.out.println("***总租金***");
for(int i=0;i<num;i++){
zujinsum=zujinsum+cars[i].getPrice();
}
System.out.println(zujinsum+"元");
/*
for(int i=0;i<num;i++){
if(cars[i] instanceof zaihuo){
System.out.println("ri"+i);
}
}
*/
}
else{System.out.println("滚你妈的");}
}
}
很多的不足
输入没有验证机制 解决:可以轻松添加
系统没有返回机制 解决:还没想到
车的类型太少 解决可以通过继承 继承3个类型的大类并对每一种车进行命名和定规格然后再重新写清单 对应新建类就ok
没有统计功能 解决:可以多加功能不过要是复杂功能可能不能用数组就解决需要利用I/O功能还不怎么会
界面不会做
优点:
多层次的继承可以更好的利用强制转换和instanceof方法进行判断
测试类里面把菜单 输入 等的操作进行分块方法 多个方法 而不是把所有东西堆在Main里面