小白新手求助。試著寫了練習(xí),輸出也成功了,但是總覺得有問(wèn)題,請(qǐng)幫忙指正
父類
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("*****歡迎來(lái)到租車系統(tǒng)*****"); Scanner?input=new?Scanner(System.in);//輸入調(diào)用 System.out.print("想要進(jìn)入租車系統(tǒng)請(qǐng)按:1;退出請(qǐng)按:0:"); int?a=input.nextInt(); if(a==1){ System.out.println("*****歡迎進(jìn)入租車系統(tǒng)*****"); System.out.println("現(xiàn)在可選擇的車型有:"); System.out.println("序號(hào)\t車型\t價(jià)格\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("請(qǐng)輸入您需要租用幾種的車型:"); int?b=input.nextInt(); if(b>5||b<1){ System.out.print("您輸入的車型錯(cuò)誤請(qǐng)重新輸入:"); int?i=input.nextInt(); b=i; } for(int?c=1;b>0&&b<6;b--){ ? System.out.print("請(qǐng)輸入您需要租第"+c+"種車型:"); int?chexing=input.nextInt(); for(;chexing>5||chexing<=0;){ System.out.print("您輸入的車型錯(cuò)誤請(qǐng)重新輸入:"); int?i=input.nextInt(); chexing=i; } System.out.print("請(qǐng)輸入您需要租的天數(shù):"); int?tianshu=input.nextInt(); System.out.print("請(qǐng)輸入您需要租車的數(shù)量:"); int?shuliang=input.nextInt(); System.out.println("你要租的第"+c+"種車型為:"+cheXing[chexing-1]+"\t租車的天數(shù)為"+tianshu+"天\t租車的數(shù)量為"+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:~~就不要吐曹命名了。。。。高中開始就英語(yǔ)沒及過(guò)格的人?,F(xiàn)在連代碼都記不住。還在一邊翻小筆記一邊寫。。
請(qǐng)幫忙多指正。
2016-04-13
寫的不錯(cuò), 大體的效果差不多出來(lái)了, 但是面向?qū)ο蟮牟僮鞣绞讲皇沁@么寫的.
首先你要把父類, 也就是抽象的 Car 類抽象封裝好, 比如不能 int num;, 而應(yīng)該 protected int num; protected 表示只有父類內(nèi)/包內(nèi)/子類可以訪問(wèn), 而把共有的 getter/setter 方法寫好, 子類里完全不需要管這些屬性了, 因?yàn)槔^承了, 是直接會(huì)擁有的.
然后創(chuàng)建一個(gè)構(gòu)造方法, 表明你想以怎樣的方式創(chuàng)建對(duì)象, 比如父類
子類直接創(chuàng)建構(gòu)造方法
總的來(lái)說(shuō)是你對(duì)這個(gè)類的繼承還差一點(diǎn)理解, 不過(guò)比我當(dāng)年要好, 盡量使用標(biāo)準(zhǔn)英文命名, 不知道就用字典查, 不記得就寫注釋, //, 你懂的
2016-04-13