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

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

交作業啦啦啦啦

抽象父類

public?abstract?class?Car?{
public?int?id;
public?String?name;
public?int?price;
public?int?sit;
public?int?load;
public?int?getId()?{
return?id;
}
public?void?setId(int?id)?{
this.id?=?id;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
public?int?getPrice()?{
return?price;
}
public?void?setPrice(int?price)?{
this.price?=?price;
}
public?int?getSit()?{
return?sit;
}
public?void?setSit(int?sit)?{
this.sit?=?sit;
}
public?int?getLoad()?{
return?load;
}
public?void?setLoad(int?load)?{
this.load?=?load;
}
public?Car(){};
public?Car(int?id,String?name,int?price,int?sit,int?load){
this.id=id;
this.name=name;
this.price=price;
this.sit=sit;
this.load=load;
}
???public?abstract?void??show();
}

子類

public?class?CPickup?extends?Car?{
public?CPickup(int?id,String?name,int?price,int?sit,int?load){
this.id=id;
this.name=name;
this.price=price;
this.sit=sit;
this.load=load;
}
@Override
public?void?show()?{
//?TODO?Auto-generated?method?stub
{System.out.println(id+".\t"+name+"\t"+price+"元/天??"+"載人:"+sit+"載貨:"+load);
}}
}

子類:

public?class?CSeden?extends?Car?{
public?CSeden(int?id,String?name,int?price,int?sit,int?load){
this.id=id;
this.name=name;
this.price=price;
this.sit=sit;
this.load=load;
}
@Override
public?void?show()?{
//?TODO?Auto-generated?method?stub
{System.out.println(id+".\t"+name+"\t"+price+"元/天??"+"載人:"+sit+"載貨:"+load);
};??????
}
}

子類:

public?class?CTruck?extends?Car?{
public?CTruck(int?id,String?name,int?price,int?sit,int?load){
this.id=id;
this.name=name;
this.price=price;
this.sit=sit;
this.load=load;
}
@Override
public?void?show()?{
//?TODO?Auto-generated?method?stub
{System.out.println(id+".\t"+name+"\t"+price+"元/天???"+"載人:"+sit+"載貨:"+load);
}
}}

Test類

import?java.util.Scanner;
public?class?Test?{
/**
*?@param?args
*/
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
Car?a4=new?CSeden(1,"奧迪A4?",500,4,0);
Car?m6=new?CSeden(2,"馬自達6?",400,4,0);
Car?p6=new?CPickup(3,"皮卡雪6",450,4,2);
Car?gd=new?CSeden(4,"金龍??????",800,20,0);
Car?slr=new?CTruck(5,"松花江?",400,0,4);
Car?evt=new?CTruck(6,"伊維特",1000,0,20);
Car?car[]={a4,m6,p6,gd,slr,evt};
System.out.println("歡迎使用DD租車系統");
System.out.println("你是否要租車:\t1.是\t0.否");
Scanner?in1=new?Scanner(System.in);
if(in1.nextInt()==1){
System.out.println("您可租車的類型及其價目表");
System.out.println("序號??\t汽車名稱\t租金\t??????容量");
a4.show();
m6.show();
p6.show();
gd.show();
slr.show();
evt.show();
//整合用戶租借數據
//要租什么車
System.out.println("請輸入您要租車的數量:");
Scanner?in2=new?Scanner(System.in);
Scanner?in3=new?Scanner(System.in);
int?num=in2.nextInt();
//生成要借車的對象數組
Car[]?zcar=new?Car[num];
//租多少天
System.out.println("請輸入您要租借的天數:");
Scanner?in4=new?Scanner(System.in);
int?days=in4.nextInt();
//整合
int?j=0;
for(int?i=0;i<num;i++)
{
System.out.println("請輸入第"+(i+1)+"輛車的序號:");
j=in3.nextInt();
zcar[i]=car[j-1];
}
System.out.println("統計完成正在生成您的賬單\n您的賬單如下:");
//判斷載人載貨車型
System.out.println("可以載人的車有:");
for(int?n=0;n<num;n++)
{if(zcar[n].sit!=0)
{
System.out.print(zcar[n].name+"??");
}
}
System.out.println("\n可以運貨的車有:");
for(int?m=0;m<num;m++)
{if(zcar[m].load!=0)
{
System.out.println(zcar[m].name+"??");
}
}
System.out.println("\n");
//統計數據
int?sumSit?=?0;
int?sumPrice=0;
int?sumLoad=0;
for(int?k=0;k<num;k++)
{
sumSit+=zcar[k].getSit();
sumPrice+=zcar[k].getPrice();
sumLoad+=zcar[k].getLoad();
}
System.out.println("總載客量:"+sumSit);
System.out.println("總運貨量:"+sumLoad);
System.out.println("總價格:"+sumPrice*days);
????}
else
???????{
System.out.println("程序準備退出");
System.exit(0);
}
}
}

運行結果:

https://img1.sycdn.imooc.com//5b694fe90001eb7a04750769.jpg


奇怪的是我生成jar后運行格式會錯亂,有大佬解答一下嗎


https://img1.sycdn.imooc.com//5b69502500010c2f07100718.jpg

正在回答

5 回答

因為你輸出時沒有控制格式,以下是Java的一些格式輸出:

?// "%"表示進行格式化輸出,"%"之后的內容為格式的定義。
? ? ? ?System.out.printf("%f", f);// "f"表示格式化輸出浮點數。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%9.2f", f);// "9.2"中的9表示輸出的長度,2表示小數點后的位數。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%+9.2f", f);// "+"表示輸出的數帶正負號。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%-9.4f", f);// "-"表示輸出的數左對齊(默認為右對齊)。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%+-9.3f", f);// "+-"表示輸出的數帶正負號且左對齊。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%d", d);// "d"表示輸出十進制整數。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%o", d);// "o"表示輸出八進制整數。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%x", d);// "x"表示輸出十六進制整數。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%#x", d);// "#x"表示輸出帶有十六進制標志的整數。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%#o", d);// "#o"表示輸出帶有八進制標志的整數。
? ? ? ?System.out.println();
? ? ? ?System.out.printf("%s", str);// "s"表示輸出字符串。
? ? ? ?System.out.println();
? ? ? ?// 可以輸出多個變量,注意順序。
? ? ? ?System.out.printf("輸出一個浮點數:%f,一個整數:%d,一個字符串:%s", f, d, str);

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

tronquick 提問者

感謝大佬
2018-08-13 回復 有任何疑惑可以回復我~

我想問一下,你那統計數據那塊那個加號是什么意思,沒見過這種用法啊!

https://img1.sycdn.imooc.com//5c346ef20001991304120440.jpg

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

...你所有子類除了類名都一樣,定義子類意義何在?

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

假如我不使用get與set的話,直接創建car的方法,這樣可行嗎?


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

大佬,car類里面為什么要使用set和get啊,我只聲明了抽象類和屬性。set和get在里面是干什么的啊

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

qq_靠不住_0

我也想問問...
2018-08-18 回復 有任何疑惑可以回復我~
#2

真的菜的摳腳

get和set函數分別是用于獲得變量的值和重置變量的值,因為為了保證數據的安全性,一般是將屬性設為private或者protect,這個時候在類外無法訪問,所以只能通過這兩個函數
2018-09-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

交作業啦啦啦啦

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

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

幫助反饋 APP下載

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

公眾號

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