寫完了 可以參考參考
//載客+載貨類
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里面
2019-07-13
???寫的很好