怎么優化呀,感覺代碼冗余
package com.dadazuche;
//車父類
public class Car {
//封裝
private String ctype;//車型
private String cname;//車名
private int cnum; //車載量
private int cprice; //日租金
//帶參數方法
public Car(String type,String name,int num,int price){
ctype=type;
cname=name;
cnum=num;
cprice=price;
}?
//獲取車型方法
public String getCtype(){
return ctype;
}
//賦值車型方法
public void setCtype(String type){
ctype=type;
}
//獲取車名方法
public String getCname(){
return cname;
}
//賦值車名方法
public void setCname(String name){
cname=name;
}
//獲取車載量方法
public int getCnum(){
return cnum;
}
//賦值車載量方法
public void setCnum(int num){
cnum=num;
}
//獲取日租金方法
public int getCprice(){
return cprice;
}
//賦值日租金方法
public void setCprice(int price){
cprice=price;
}
//計算總租金方法
public int sum(int unit,int days){
return unit*days*getCprice();
}
}
package com.dadazuche;
//卡車子類,繼承父類
public class Truck extends Car {
public Truck(String type, String name, int num, int price) {
super(type, name, num, price);
// TODO Auto-generated constructor stub
}
}
//客車子類,繼承父類
package com.dadazuche;
public class Bus extends Car {
public Bus(String type, String name, int num, int price) {
super(type, name, num, price);
// TODO Auto-generated constructor stub
}
}
//皮卡車子類,繼承父類
package com.dadazuche;
public class Pickup extends Car {
public Pickup(String type, String name, int num, int price) {
super(type, name, num, price);
// TODO Auto-generated constructor stub
}
}
//測試執行
package com.dadazuche;
import java.util.Scanner;
public class Use {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int j=0;
int a=0;
Truck[] truck={new Truck("重卡","一汽乘龍",200,1500),new Truck("重卡","東風康明斯",250,1800),new Truck("中卡","北京解放",100,800),new Truck("輕卡","峻嶺v系列",50,500)};
Bus[] Bus={new Bus("大巴","宇通客車",45,900),new Bus("大巴","金龍客車",45,900),new Bus("中巴","金旅客車",30,600),new Bus("小巴","金杯系列",10,300)};
Pickup[] Pickup={new Pickup("皮卡","吉普系列",5,400),new Pickup("帶后巷","江鈴系列",5,600)};
Scanner input=new Scanner(System.in);
System.out.println("歡迎使用噠噠租車!");
System.out.println("請選擇您的租車用途:1 拉貨 ? 2 載客 ?3 綜合");
int in1=input.nextInt();
while(in1!=1&&in1!=2&&in1!=3&&a<3){
a++;
System.out.println("您的輸入有誤,請按提示選擇編號!");
System.out.println("請選擇您的租車用途:1 拉貨 ? 2 載客 ?3 綜合");
in1=input.nextInt();
}
System.out.println(a);
System.out.println(in1);
if (a>=3){System.out.println("您的輸入錯誤次數超過限制,歡迎下次再來!");}
if(in1==1){
System.out.println("拉貨,有如下車型可以選擇!");
for(int i=0;i<truck.length;i++){
j++;
System.out.println("編號:"+j+" " +" 車型:"+truck[i].getCtype() +" ? 品牌:"+ truck[i].getCname() +" ? 車載量:"+truck[i].getCnum() +"噸 ? ?日租金:"+truck[i].getCprice()+" 元");
}
System.out.println("請選擇車型編號:");
int in2=input.nextInt();
a=0;
while((in2>j||in2==0)&&a<3){
a++;
System.out.println("您的輸入有誤,請按提示選擇編號!");
System.out.println("請選擇車型編號:");
in2=input.nextInt();
}
if(a>=3){System.out.println("您的輸入錯誤次數超過限制,歡迎下次再來!");}
else {
System.out.println("輸入租用車數:");
int in3=input.nextInt();
System.out.println("輸入租用天數:");
int in4=input.nextInt();
? ? ? ?Truck tru= truck[in2-1];
? ? ? ?int sum=tru.sum(in3, in4);
? ? ? ? System.out.println("您選擇的是: "+in2+" "+"車型:"+truck[in2-1].getCtype() +" ? 品牌:"+ truck[in2-1].getCname() +" ? 車載量:"+truck[in2-1].getCnum() +"噸 ? ?日租金:"+truck[in2-1].getCprice()+" 元");
? ? System.out.println("租用車數 ?"+in3+" 輛 ?,租用天數 "+in4+" 天 ,總共 "+sum+" 元");
}}
?if(in1==2){
System.out.println("載客,有如下車型可以選擇!");
for(int i=0;i<Bus.length;i++){
j++;
System.out.println(j+" " +" 車型:"+Bus[i].getCtype() +" ? 品牌:"+ Bus[i].getCname() +" ? 車載量:"+Bus[i].getCnum() +"噸 ? ?日租金:"+Bus[i].getCprice()+" 元");
}
System.out.println("請選擇車型:");
int in2=input.nextInt();
a=0;
while((in2>j||in2==0)&&a<3){
a++;
System.out.println("您的輸入有誤,請按提示選擇編號!");
System.out.println("請選擇車型:");
in2=input.nextInt();
}
if(a>=3){System.out.println("您的輸入錯誤次數超過限制,歡迎下次再來!");}
else{
System.out.println("輸入租用車數:");
int in3=input.nextInt();
System.out.println("輸入租用天數:");
int in4=input.nextInt();
Bus bus= Bus[in2-1];
? ? ? ?int sum=bus.sum(in3, in4);
? ? ? ? System.out.println("您選擇的是: "+in2+" "+"車型:"+Bus[in2-1].getCtype() +" ? 品牌:"+ Bus[in2-1].getCname() +" ? 車載量:"+Bus[in2-1].getCnum() +"噸 ? ?日租金:"+Bus[in2-1].getCprice()+" 元");
? ? System.out.println("租用車數 ?"+in3+" 輛 ?,租用天數 "+in4+" 天 ,總共 "+sum+" 元");
}}
?if(in1==3){
System.out.println("綜合,有如下車型可以選擇!");
for(int i=0;i<Pickup.length;i++){
j++;
System.out.println(j+" " +" 車型:"+Pickup[i].getCtype() +" ? 品牌:"+ Pickup[i].getCname() +" ? 車載量:"+Pickup[i].getCnum() +"噸 ? ?日租金:"+Pickup[i].getCprice()+" 元");
}
System.out.println("請選擇車型:");
int in2=input.nextInt();
a=0;
while((in2>j||in2==0)&&a<3){
System.out.println("您的輸入有誤,請按提示選擇編號!");
System.out.println("請選擇車型:");
in2=input.nextInt();
a++;
}
if(a>=3){System.out.println("您的輸入錯誤次數超過限制,歡迎下次再來!");}
else{
System.out.println("輸入租用車數:");
int in3=input.nextInt();
System.out.println("輸入租用天數:");
int in4=input.nextInt();
Pickup pickup= Pickup[in2-1];
? ? ? ?int sum=pickup.sum(in3, in4);
? ? ? ? System.out.println("您選擇的是: "+in2+" "+"車型:"+Pickup[in2-1].getCtype() +" ? 品牌:"+ Pickup[in2-1].getCname() +" ? 車載量:"+Pickup[in2-1].getCnum() +"噸 ? ?日租金:"+Pickup[in2-1].getCprice()+" 元");
? ? System.out.println("租用車數 ?"+in3+" 輛 ?,租用天數 "+in4+" 天 ,總共 "+sum+" 元");
}}
}
}
2019-08-29
你可以將你代碼重復的部分封裝成帶參的方法,進行調用。比如你對輸入的校驗這一塊,可以封裝成一個校驗的方法,你選擇的車型那也可以封裝成方法