小白新手求助。試著寫了練習,輸出也成功了,但是總覺得有問題,請幫忙指正
父類
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在連代碼都記不住。還在一邊翻小筆記一邊寫。。
請幫忙多指正。
2016-04-13
寫的不錯, 大體的效果差不多出來了, 但是面向對象的操作方式不是這么寫的.
首先你要把父類, 也就是抽象的 Car 類抽象封裝好, 比如不能 int num;, 而應該 protected int num; protected 表示只有父類內/包內/子類可以訪問, 而把共有的 getter/setter 方法寫好, 子類里完全不需要管這些屬性了, 因為繼承了, 是直接會擁有的.
然后創建一個構造方法, 表明你想以怎樣的方式創建對象, 比如父類
子類直接創建構造方法
總的來說是你對這個類的繼承還差一點理解, 不過比我當年要好, 盡量使用標準英文命名, 不知道就用字典查, 不記得就寫注釋, //, 你懂的
2016-04-13