以下星號是為了慕友方便看
************************************************汽車父類****************************************************
package?dadarentcar;
public?abstract?class?Car?{//汽車的父類
//父類擁有的屬性
String?name;//汽車姓名
double?price;//汽車租賃價格
int?busLoad;
int?truckLoading;
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;
}
public?int?getBusLoad()?{
return?busLoad;
}
public?void?setBusLoad(int?busLoad)?{
this.busLoad?=?busLoad;
}
public?int?getTruckLoading()?{
return?truckLoading;
}
public?void?setTruckLoading(int?truckLoading)?{
this.truckLoading?=?truckLoading;
}
public?abstract?void?showInfo();//抽象方法?子類會重寫,展示?車名、價格、載貨量或載客量
}
以下星號是為了慕友方便看
************************************************載客汽車類***************************************************
package?dadarentcar;
public?class?Bus?extends?Car{
int?busLoad;//載客量
public?Bus(String?name,double?price,int?busLoad){
this.name=name;
this.price=price;
this.busLoad=busLoad;
}
public?int?getBusLoad()?{//封裝后的獲取和修改方法
return?busLoad;
}
public?void?setBusload(int?busLoad)?{
this.busLoad?=?busLoad;
}
@Override
public?void?showInfo()?{//重寫父類showInfo方法
//?TODO?Auto-generated?method?stub
System.out.println(getName()+"\t\t"+getPrice()+"/天"+"\t\t"+getBusLoad()+"人");
}
}
以下星號是為了慕友方便看
************************************************皮卡汽車類***************************************************
package?dadarentcar;
public?class?Pickup?extends?Car?{
int?busLoad;//皮卡載客量
int?truckLoading;//皮卡載貨量
public?Pickup(String?name,double?price,int?busLoad,int?truckLoading){//Pickup的構(gòu)造方法
this.name=name;
this.price=price;
this.busLoad=busLoad;
this.truckLoading=truckLoading;
}
public?int?getBusLoad()?{//封裝后的獲取和修改屬性方法
return?busLoad;
}
public?void?setBusLoad(int?busLoad)?{
this.busLoad?=?busLoad;
}
public?int?getTruckLoading()?{
return?truckLoading;
}
public?void?setTruckLoading(int?truckLoading)?{
this.truckLoading?=?truckLoading;
}
@Override
public?void?showInfo()?{//重寫父類showInfo方法
//?TODO?Auto-generated?method?stub
System.out.println(getName()+"\t\t"+getPrice()+"/天"+"\t\t"+getBusLoad()+"人\t"+getTruckLoading()+"噸");
}
}
以下星號是為了慕友方便看
************************************************載貨汽車類***************************************************
package?dadarentcar;
public?class?Truck?extends?Car?{
int?truckLoading;//貨車載貨量
public?Truck(String?name,double?price,int?truckLoading){//Truck的構(gòu)造方法
this.name=name;
this.price=price;
this.truckLoading=truckLoading;
}
public?int?getTruckLoading()?{//封裝后獲取或修改屬性的方法
return?truckLoading;
}
public?void?setTruckLoading(int?truckLoading)?{
this.truckLoading?=?truckLoading;
}
@Override
public?void?showInfo()?{//重寫父類showInfo方法
//?TODO?Auto-generated?method?stub
System.out.println(getName()+"\t\t"+getPrice()+"/天"+"\t\t"+getTruckLoading()+"噸");
}
}
以下星號是為了慕友方便看
************************************************主函數(shù)類***************************************************
package?dadarentcar;
import?java.util.Scanner;//導(dǎo)入掃描儀
public?class?DaDa_Rent_Car{
public?static?void?main(String[]?ages){//主函數(shù)
//使用數(shù)組統(tǒng)一創(chuàng)建汽車對象得到汽車數(shù)組
Car[]?carArray={new?Bus("奧迪A4",500,4),new?Bus("馬自達(dá)6",400,4),new?Pickup("皮卡雪6",450,4,2),new?Bus("金龍",800,20),new?Truck("松花江",400,4),new?Truck("依維柯",1000,20)};
//詢問用戶是否需要租車
Scanner?input=new?Scanner(System.in);//創(chuàng)建Scanner對象
System.out.println("****歡迎來到答答租車,是否需要租車??輸入“1”租車,輸入“0”退出。****");
//接受用戶輸入的答案
int?answer=input.nextInt();
while(answer!=1&&answer!=0){//當(dāng)用戶輸入除0和1以外的數(shù)時,進(jìn)入循環(huán),直到用戶輸入1和0跳出循環(huán)
System.out.println("****歡迎來到答答租車,是否需要租車??輸入“1”租車,輸入“0”退出。****");
int?answer1=input.nextInt();//新建一個局部變量answer1接受數(shù)據(jù)
if(answer1==1){//當(dāng)用戶輸入1后跳出循環(huán),并把值賦給answer
answer=answer1;
break;
}
if(answer1==0){//當(dāng)用戶輸入0后跳出循環(huán),并把值賦給answer
answer=answer1;
break;
}
}
//判斷用戶輸入的數(shù)據(jù),得出不同結(jié)果
if(answer==1){
System.out.println("進(jìn)入系統(tǒng)******");
//打印出導(dǎo)航
System.out.println("序號"+"\t"+"車名"+"\t\t"+"價格"+"\t\t"+"載客/載貨");
for(int?i=0;i<carArray.length;i++){
System.out.print(i+1+"\t");
carArray[i].showInfo();
}
//詢問用戶需要租賃多少輛車
System.out.println("需要租多少輛車?******");
int?rentNum=input.nextInt();//接受用戶輸入的數(shù)據(jù)
Car[]?rentCar=new?Car[rentNum];//創(chuàng)建需要租賃的車的數(shù)組,數(shù)組長度為用戶輸入需要租賃汽車的個數(shù)
for(int?i=0;i<rentCar.length;i++){
System.out.println("請輸入第"+(i+1)+"輛車的序號");
int?carNum=input.nextInt();
rentCar[i]=carArray[carNum-1];
}
//詢問用戶需要租賃多少天
System.out.println("需要租多少天?******");
int?rentDay=input.nextInt();
//打印賬單
System.out.println("******您的賬單******");
int?allBusLoad=0;//統(tǒng)計總載人量
int?allTruckLoading=0;//統(tǒng)計總載貨量
int?allPrice=0;//統(tǒng)計總租金
System.out.println("您所租賃的車,可載人的車輛有:******");
for(int?i=0;i<rentCar.length;i++){
if(rentCar[i]?instanceof?Bus||rentCar[i]?instanceof?Pickup){
rentCar[i].showInfo();
allBusLoad+=rentCar[i].getBusLoad();
}
}
System.out.println("您所租賃的車,可載貨的車輛有:******");
for(int?j=0;j<rentCar.length;j++){
if(rentCar[j]?instanceof?Truck||rentCar[j]?instanceof?Pickup){
rentCar[j].showInfo();
allTruckLoading+=rentCar[j].getTruckLoading();
}
allPrice+=rentCar[j].getPrice();
}
//總載客數(shù)、總價錢和總載貨量
System.out.println("總載客數(shù)為:"+allBusLoad+"人");
System.out.println("總載貨量為:"+allTruckLoading+"噸");
System.out.println("總租金為:"+(allPrice*rentDay)+"元");
}else?if(answer==0){
System.out.println("********歡迎下次光臨********");
}
}
}
1 回答
已采納

天啟之魂
TA貢獻(xiàn)174條經(jīng)驗(yàn) 獲得超85個贊
大概看了一下? 給幾個小建議
1,用了set和get方法 屬性就要加上private,當(dāng)然不加也沒錯
2,car中不要定義 busLoad;和truckLoading;
3,一開始的確認(rèn)用戶是否需要租車這里寫的有點(diǎn)繞。。。??梢院喕稽c(diǎn)
4, 直接將所有的功能全封裝成函數(shù),然后直接在main中調(diào)用,這樣main更簡潔,修改更方便
????比如main中先創(chuàng)建車輛數(shù)組后,調(diào)用歡迎函數(shù),然后調(diào)用打印信息的函數(shù),然后調(diào)用要求用戶輸入租車信息的函數(shù),之后調(diào)用打印租車結(jié)果的函數(shù),over 整個main函數(shù)也就幾行,邏輯清楚,簡潔,易于修改。
后面代碼沒仔細(xì)看 不過既然你貼出來了應(yīng)該運(yùn)行是沒什么問題的 。
添加回答
舉報
0/150
提交
取消