亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

小白新手求助。試著寫了練習,輸出也成功了,但是總覺得有問題,請幫忙指正

父類

package?ddzc.imooc;

public?abstract?class?Car?{
	int?num;
	String?name;
	int?jg;
	int?zz;
	int?zr;
	public?int?getNum()?{
		return?num;
	}
	public?void?setNum(int?num)?{
		this.num?=?num;
	}
	public?String?getName()?{
		return?name;
	}
	public?void?setName(String?name)?{
		this.name?=?name;
	}
	public?int?getJg()?{
		return?jg;
	}
	public?void?setJg(int?jg)?{
		this.jg?=?jg;
	}
	public?int?getZz()?{
		return?zz;
	}
	public?void?setZz(int?zz)?{
		this.zz?=?zz;
	}
	public?int?getZr()?{
		return?zr;
	}
	public?void?setZr(int?zr)?{
		this.zr?=?zr;
	}
	abstract?void?kan();

}

子類

package?ddzc.imooc;
//小貨車
public?class?Xh?extends?Car?{
	int?num=1;
	String?name="小貨車";
	int?jg=400;
	int?zz=5;

	@Override
	void?kan()?{
		//?TODO?Auto-generated?method?stub
		this.setNum(num);
		this.setName(name);
		this.setJg(jg);
		this.setZz(zz);
		System.out.println(getNum()+"\t"+getName()+"\t"+getJg()+"元/天\t"+"\t載重:"+getZz()+"噸");
	}

}
package?ddzc.imooc;
//大貨車
public?class?Dh?extends?Car?{
	int?num=2;
	String?name="大貨車";
	int?jg=1000;
	int?zz=20;

	@Override
	void?kan()?{
		//?TODO?Auto-generated?method?stub
		this.setNum(num);
		this.setName(name);
		this.setJg(jg);
		this.setZz(zz);
		System.out.println(getNum()+"\t"+getName()+"\t"+getJg()+"元/天"+"\t載重:"+getZz()+"噸");
	}

}
package?ddzc.imooc;
//皮卡
public?class?Pk?extends?Car?{
	int?num=3;
	String?name="皮卡";
	int?jg=500;
	int?zz=5;
	int?zr=4;
	

	@Override
	void?kan()?{
		//?TODO?Auto-generated?method?stub
		this.setNum(num);
		this.setName(name);
		this.setJg(jg);
		this.setZz(zz);
		this.setZr(zr);
		System.out.println(getNum()+"\t"+getName()+"\t"+getJg()+"元/天\t"+"\t載客:"+getZr()+"人"+"\t載重:"+getZz()+"噸");
	}

}
package?ddzc.imooc;
//小客車
public?class?Xk?extends?Car?{
	int?num=4;
	String?name="小客車";
	int?jg=400;
	int?zr=5;

	@Override
	void?kan()?{
		//?TODO?Auto-generated?method?stub
		this.setNum(num);
		this.setName(name);
		this.setJg(jg);
		this.setZr(zr);
		System.out.println(getNum()+"\t"+getName()+"\t"+getJg()+"元/天\t"+"\t載客:"+getZr()+"人");
	}

}
package?ddzc.imooc;
//大客車
public?class?Dk?extends?Car?{
	int?num=5;
	String?name="大客車";
	int?jg=800;
	int?zr=20;

	@Override
	void?kan()?{
		//?TODO?Auto-generated?method?stub
		this.setNum(num);
		this.setName(name);
		this.setJg(jg);
		this.setZr(zr);
		System.out.println(getNum()+"\t"+getName()+"\t"+getJg()+"元/天\t"+"\t載客:"+getZr()+"人");
	}

}

main

package?ddzc.imooc;
import?java.util.Scanner;

public?class?Imain?{

	public?static?void?main(String[]?args)?{
		//?TODO?Auto-generated?method?stub
		System.out.println("*****歡迎來到租車系統*****");
		Scanner?input=new?Scanner(System.in);//輸入調用
		System.out.print("想要進入租車系統請按:1;退出請按:0:");
		int?a=input.nextInt();
		
		if(a==1){
			System.out.println("*****歡迎進入租車系統*****");
			System.out.println("現在可選擇的車型有:");
			System.out.println("序號\t車型\t價格\t\t容量");
			Car?xh=new?Xh();
			xh.kan();
			Car?dh=new?Dh();
			dh.kan();
			Car?pk=new?Pk();
			pk.kan();
			Car?xk=new?Xk();
			xk.kan();
			Car?dk=new?Dk();
			dk.kan();
			String[]?cheXing={xh.name,dh.name,pk.name,xk.name,dk.name};
			int[]?jG={xh.jg,dh.jg,pk.jg,xk.jg,dk.jg};
			int[]?xiaoJi=new?int[5];
			
			
			System.out.print("請輸入您需要租用幾種的車型:");
			int?b=input.nextInt();
			
			if(b>5||b<1){
				System.out.print("您輸入的車型錯誤請重新輸入:");
				int?i=input.nextInt();
				b=i;
				}
			for(int?c=1;b>0&&b<6;b--){	?
				System.out.print("請輸入您需要租第"+c+"種車型:");
				int?chexing=input.nextInt();
				
				for(;chexing>5||chexing<=0;){
					System.out.print("您輸入的車型錯誤請重新輸入:");
					int?i=input.nextInt();
					chexing=i;
					}
			
				System.out.print("請輸入您需要租的天數:");
				int?tianshu=input.nextInt();
			
				System.out.print("請輸入您需要租車的數量:");
				int?shuliang=input.nextInt();
			
				System.out.println("你要租的第"+c+"種車型為:"+cheXing[chexing-1]+"\t租車的天數為"+tianshu+"天\t租車的數量為"+shuliang+"輛");
			
			????xiaoJi[c-1]=jG[chexing-1]*shuliang*tianshu;
				System.out.println("您租車第"+c+"種車需要的租金為:"+xiaoJi[c-1]);	
				c++;
			}
			int?zongji=0;
			for(int?d=0;d>=0&&d<5;d++){
				zongji=zongji+xiaoJi[d];
			}
			System.out.println("您租車需要的總租金為:"+zongji);
		}else
			System.out.println("再見");
		
	}

尤其是總租金的地方。。

ps:~~就不要吐曹命名了。。。。高中開始就英語沒及過格的人?,F在連代碼都記不住。還在一邊翻小筆記一邊寫。。

請幫忙多指正。

正在回答

2 回答

寫的不錯, 大體的效果差不多出來了, 但是面向對象的操作方式不是這么寫的.

首先你要把父類, 也就是抽象的 Car 類抽象封裝好, 比如不能 int num;, 而應該 protected int num; protected 表示只有父類內/包內/子類可以訪問, 而把共有的 getter/setter 方法寫好, 子類里完全不需要管這些屬性了, 因為繼承了, 是直接會擁有的.

然后創建一個構造方法, 表明你想以怎樣的方式創建對象, 比如父類

public?Car(int?num,?String?name,?int?jg,?int?zz,?int?zr){
????this.num?=?num;
????this.name?=?name;
????this.jg?=?jg;
????this.zz?=?zz;
????this.zr?=?zr;
}

子類直接創建構造方法

public?Xh(int?num,?...){
????super(num,?...);
????//?這里寫子類或許擁有的其他屬性,?如果沒有就忽略,?只用上面那個?super(...);
}

總的來說是你對這個類的繼承還差一點理解, 不過比我當年要好, 盡量使用標準英文命名, 不知道就用字典查, 不記得就寫注釋, //, 你懂的

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

狼女 提問者

謝謝,解說
2016-04-15 回復 有任何疑惑可以回復我~
#2

老實得很

不好意思,不太懂您的講解,能再詳細說明一下嗎,希望有代碼解釋
2016-04-15 回復 有任何疑惑可以回復我~
package?Test;
public?abstract?class?Car?{
	//定義?屬性
	int?CarNum;??//車型編號
????String?CarName;?//車型名稱
	double?Priec;???//每日租金/價格
	int?Busload;????//載客數量
	double?Load;????//載重量
	abstract?void?CarShow();
}
package?Test;

public?class?Buggy?extends?Car?{?//小貨車定義
	static?final?int?CarNum=1;
	static?final?String?CarName="小貨車";
	static?final?double?Priec=400;
	static?final?int?Busload=0;
	static?final?double?Load=5.0;??
	void?CarShow(){
		System.out.println(CarNum+"\t"+CarName+"\t"+Priec+"元/輛/天"+"\t"+Busload+"人\t"+Load+"噸");
	}
}
package?Test;

public?class?Truck?extends?Car?{
	static?final?int?CarNum=2;
	static?final?String?CarName="大貨車";
	static?final?double?Priec=1000;
	static?final?int?Busload=0;
	static?final?double?Load=15.0;?
	void?CarShow(){
		System.out.println(CarNum+"\t"+CarName+"\t"+Priec+"元/輛/天"+"\t"+Busload+"人\t"+Load+"噸");
	}
}
package?Test;

public?class?Pickup?extends?Car?{??//定義皮卡車
	static?final?int?CarNum=3;
	static?final?String?CarName="皮卡車";
	static?final?double??Priec=500;
	static?final?int?Busload=3;
	static?final?double?Load=3.0;?
	void?CarShow(){
		System.out.println(CarNum+"\t"+CarName+"\t"+Priec+"元/輛/天"+"\t"+Busload+"人\t"+Load+"噸");
	}
}
package?Test;

public?class?Sedan?extends?Car?{?//小客車
	static?final?int?CarNum=4;
	static?final?String?CarName="小客車";
	static?final?double?Priec=300;
	static?final?int?Busload=4;
	static?final?double?Load=0;
	void?CarShow(){
		System.out.println(CarNum+"\t"+CarName+"\t"+Priec+"元/輛/天"+"\t"+Busload+"人\t"+Load+"噸");
	}
}
package?Test;

public?class?Bus?extends?Car?{
	static?final?int?CarNum=5;
	static?final?String?CarName="大客車";
	static?final?double?Priec=1500;
	static?final?int?Busload=20;
	static?final?double?Load=0;
	void?CarShow(){
		System.out.println(CarNum+"\t"+CarName+"\t"+Priec+"元/輛/天"+"\t"+Busload+"人\t"+Load+"噸");
	}

}
package?Test;
import?java.util.*;

public?class?RentCar?{
	public?static?void?main(String[]?args){
		
		?RentCar.show01();
		?Scanner?input=new?Scanner(System.in);//輸入調用
		?int?inputChoose=input.nextInt();		
		?int?xuanzhe01=RentCar.Legal(inputChoose,0,1);//選擇結果得到
		?
		?if(xuanzhe01==1){???//進入選車租車系統
			?RentCar.show02();
			?System.out.print("請輸入您需要租用幾種的車型:");
	?????????int?CarNameChoose=input.nextInt();
	?????????int?xuanzhe02=RentCar.Legal(CarNameChoose,1,5);//選擇車型結束
	?????????int[][]?sum=new?int[xuanzhe02][3];
	?????????
	???????//開始對幾類車型分別做類型及數量,天數輸入
	?????????for(int?j=1,?i=0;j<=xuanzhe02;i++,j++){??//i控制數組——j控制次數
	????????	?//車型確定
	????????	?do{
	????????	?System.out.print("請輸入你選擇的第"+j+"類型車輛的序號(不要重復輸入已選型號序號):");
	????????	?CarNameChoose=input.nextInt();
	????????	?sum[i][0]=RentCar.Legal(CarNameChoose,1,5);
	????????	?}while(!RentCar.Repeat(CarNameChoose,?i,?sum));//確保車型不重復
	????????	?
	????????	?//數量確定
	????????	?System.out.print("請輸入你選擇的第"+j+"類型車型的租用數量(不超過100臺):");
	????????	?CarNameChoose=input.nextInt();
	????????	?sum[i][1]=RentCar.Legal(CarNameChoose,1,101);
	????????	?
	????????	?//天數確定
	????????	?System.out.print("請輸入你選擇的第"+j+"類型車型的租用天數(不超過100天):");
	????????	?CarNameChoose=input.nextInt();
	????????	?sum[i][2]=RentCar.Legal(CarNameChoose,1,101);
	?????????}
			?//取得輸入完成,開始計算需要的數值
????????	?String?loadCarName="";
????????	?double?loadSum=0;
????????	?String?BusCarName="";
????????	?int?BusSum=0;
????????	?double?Amount=0;
	?????????for(int?i=0;i<xuanzhe02;i++){	????????	?
	????????	?switch(?sum[i][0]){?//分類計算開始
	????????	?case?Buggy.CarNum:
	????????		?loadCarName=loadCarName+"\t"+Buggy.CarName;
	????????		?loadSum=loadSum+Buggy.Load*sum[i][1];
	????????		?Amount=Amount+sum[i][1]*sum[i][2]*Buggy.Priec;
	????????		?break;
	????????	?case?Truck.CarNum:
	????????		?loadCarName=loadCarName+"\t"+Truck.CarName;
	????????		?loadSum=loadSum+Truck.Load*sum[i][1];
	????????		?Amount=Amount+sum[i][1]*sum[i][2]*Truck.Priec;
	????????		?break;
	????????	?case?Pickup.CarNum:
	????????		?loadCarName=loadCarName+"\t"+Pickup.CarName;
	????????		?loadSum=loadSum+Pickup.Load*sum[i][1];
	????????		?BusCarName=BusCarName+"\t"+Pickup.CarName;
	????????		?BusSum=BusSum+Pickup.Busload*sum[i][1];
	????????		?Amount=Amount+sum[i][1]*sum[i][2]*Pickup.Priec;
	????????		?break;
	????????	?case?Sedan.CarNum:
	????????		?BusCarName=BusCarName+"\t"+Sedan.CarName;
	????????		?BusSum=BusSum+Sedan.Busload*sum[i][1];
	????????		?Amount=Amount+sum[i][1]*sum[i][2]*Sedan.Priec;
	????????		?break;
	????????	?case?Bus.CarNum:
	????????		?BusCarName=BusCarName+"\t"+Bus.CarName;
	????????		?BusSum=BusSum+Bus.Busload*sum[i][1];
	????????		?Amount=Amount+sum[i][1]*sum[i][2]*Bus.Priec;	????????		?
	????????		?break;
	????????	?};??		????????	?
	?????????}
			?//輸出部分
	????????System.out.println("***可載人車有\n"+BusCarName+"\t共可載:"+BusSum+"人");
	????????System.out.println("***可載貨車有\n"+loadCarName+"\t共可載:"+loadSum+"噸");
	????????System.out.println("租車總價格"+Amount+"元");
	????????System.out.println();
			?
		?}
		?else{?//不進入系統,退出
			?System.out.println("推出系統");
		?}		
	}
	
	
	
	
	public?static??void?show01(){??//第一次顯示
		System.out.println("*****歡迎來到租車系統*****");
		System.out.print("想要進入租車系統請按:1;退出請按:0:");
???????
	}
	public?static?void?show02(){??//第二次顯示
		??System.out.println("*****歡迎進入租車系統*****");
??????????System.out.println("現在可選擇的車型有:");
??????????System.out.println("序號\t車型\t價格\t\t載客數\t載重數");
??????????RentCar.Carinitshow();??//定義初始化部分
	}
	
	public?static?void?Carinitshow(){?//顯示個信息
		Car?Buggy=new?Buggy();
		Buggy.CarShow();
		Car?Truck=new?Truck();
		Truck.CarShow();
		Car?Pickup=new?Pickup();
		Pickup.CarShow();
		Car?Sedan=new?Sedan();
		Sedan.CarShow();
		Car?Bus=new?Bus();
		Bus.CarShow();
		//double[][]?CarArrye={{Buggy.CarNum,Truck.CarNum,Pickup.CarNum,Sedan.CarNum,Bus.CarNum},{Buggy.Price,Truck.Price,Pickup.Price,Sedan.Price,Bus.Price}};
	}
	public?static?int?Legal(int?intnum,int?intmin,int?intmax){?//判斷輸入正確性,輸入不對一直輸入,知道輸入正確為止
		while((intnum<intmin)||(intnum>intmax)){
			System.out.print("請按提示重新輸入"+intmin+"到"+intmax+"數值");
			Scanner?input=new?Scanner(System.in);//輸入調用
			intnum=input.nextInt();
		};
		return?intnum;
	}
	public?static?boolean?Repeat(int?CarNameChoose,int?i,int?sum[][]){?//判斷是否重復選車型
		boolean?CarNumfloat=true;
		
			if(i!=0){
				for(int?n=0;n<i;n++){
					if(CarNameChoose==sum[n][0]){
						CarNumfloat=false;
						break;				
					}
				}
			}		
		return?CarNumfloat;
	}
	

}
//我也剛學習,花了好幾個小時做好了,復習了很多知識,哈哈!
//希望對您有借鑒,還有就是你寫的邏輯我不是很清楚,沒看完,汗!


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

小白新手求助。試著寫了練習,輸出也成功了,但是總覺得有問題,請幫忙指正

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號