java類的設(shè)計動物類教學(xué)提綱_第1頁
java類的設(shè)計動物類教學(xué)提綱_第2頁
java類的設(shè)計動物類教學(xué)提綱_第3頁
java類的設(shè)計動物類教學(xué)提綱_第4頁
java類的設(shè)計動物類教學(xué)提綱_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Good is good, but better carries it.精益求精,善益求善。java類的設(shè)計動物類-Java大作業(yè)實踐報告Animal公司的分析與設(shè)計廣東藥學(xué)院一Animal類的設(shè)計要求:根據(jù)實際需求設(shè)計Animal類,并完成以下功能:輸出全部信息對2個實例進(jìn)行比較使用static對共同的屬性進(jìn)行修飾實現(xiàn)從鍵盤輸入的功能實現(xiàn)單態(tài)設(shè)計模式加異常信息加入多線程使用集合(可選)二設(shè)計場景,實現(xiàn)其要求場景設(shè)計在一間公司,擁有很多的小貓小狗等寵物可以出賣。輸出9只動物的全部信息,舉例代表全部動物的信息,并用List集合存放所有信息。可以選擇輸入動物的信息來增加動物的數(shù)量,其中輸入錯誤不能

2、添加,并且進(jìn)行了異常處理??梢詫游锏膶傩赃M(jìn)行比較,例如年齡,名字等。用到了方法的重載。公司的動物的總數(shù)為共同屬性和來源,用static修飾。公司實現(xiàn)單態(tài)模式設(shè)計,所有動物都是屬于這間公司的??梢詮逆I盤輸入許多不同的選擇,選擇對動物進(jìn)行不同的操作,并且所有的輸入都進(jìn)行了異常的處理。采用多線程售賣動物,實現(xiàn)三個窗口同時售賣,并且進(jìn)行了同步設(shè)計,保證安全。利用ArrayList集合收集動物的年齡信息,并對其進(jìn)行分析。三.接口與類的基本設(shè)計接口Animal(包涵四個抽象方法):Stringprint();/姓名+年齡Stringtalk();/姓名+他的聲音Stringall();/全部信息void

3、input();/輸入數(shù)據(jù)抽象父類A:實現(xiàn)接口Animal1.私有屬性privateStringname;privateintage;privateStringvoice;privateStringbeizhu;/備注共同屬性staticStringhouse=KFC;staticintnum=200;2.構(gòu)造方法3.抽象方法publicabstractStringprint();4.重寫接口的部分抽象方法5.對于封裝的屬性對外提供函數(shù)Dog類:繼承A類privateStringspec;/這個對象含有自己獨特屬性構(gòu)造方法重寫父類的方法:publicStringtalk()重寫父類的抽象方法:

4、publicStringprint()Cat類:繼承A類1.構(gòu)造方法2.重寫父類的抽象方法:publicStringprint()MyTh類(實現(xiàn)Runnable):進(jìn)行多線程售賣動物Company類:單態(tài)設(shè)計模式T類:測試功能(主函數(shù))四其他函數(shù)功能塊1.publicstaticvoidanlyage(ArrayListage)/對年齡進(jìn)行分析2.publicstaticvoidrandonsale(Listname,Dogd)/隨即賣掉X只動物3.publicstaticvoidduosale(intnum)/開創(chuàng)3個窗口,多線程同步售賣4.publicstaticvoidcampare(

5、Stringa,Stringb)/兩個實例的對比publicstaticvoidcampare(inta,intb)/方法的重載五全部代碼塊importjava.util.*;/.總接口.interfaceAnimal/總接口Stringprint();/姓名+年齡Stringtalk();/姓名+他的聲音Stringall();/全部信息voidinput();/輸入數(shù)據(jù)/.動物的父類.abstractclassAimplementsAnimal/動物的父類privateStringname;privateintage;privateStringvoice;privateStringbeiz

6、hu;/備注staticStringhouse=KFC;staticintnum=200;/父類的構(gòu)造方法publicA()publicA(Stringname)setname(name);publicA(Stringname,intage)setname(name);setage(age);publicA(Stringname,intage,Stringvoice,Stringbeizhu)setname(name);setage(age);setvoice(voice);setbeizhu(beizhu);/重寫抽象方法publicabstractStringprint();/留給子類喜歡

7、獨自擴充的抽象方法publicStringtalk()returngetname()+getvoice();publicStringall()returngetname()+getage()+getvoice()+getbeizhu()+this.house;publicvoidinput()/輸入數(shù)據(jù)Scannerinput1=newScanner(System.in);try/=input1.next();setname(input1.next();setage(input1.nextInt();setvoice(input1.next();setbeizhu(input1.next();

8、A.num+;catch(Exceptione)System.out.println(e);setage(1000000);System.out.println(輸入有誤);/A.num-;/封裝voidsetname(Stringname)=name;Stringgetname()returnname;voidsetage(intage)this.age=-999999;if(age=0)this.age=age;elseA.num-;trythrownewIllegalArgumentException(年齡輸入有誤,不能為負(fù)數(shù));/在方法內(nèi)部拋出異常IllegalArgumentExce

9、ptioncatch(IllegalArgumentExceptione)System.out.println(e.getMessage();intgetage()returnage;voidsetvoice(Stringvoice)this.voice=voice;Stringgetvoice()returnvoice;voidsetbeizhu(Stringbeizhu)this.beizhu=beizhu;Stringgetbeizhu()returnbeizhu;/.單態(tài)設(shè)計模式.classCompany/單態(tài)設(shè)計模式staticStringcname;privateCompany(S

10、tringcname)ame=cname;/單態(tài)設(shè)計模式核心staticCompanyp=newCompany(CKFC);staticpublicCompanygetC()returnp;/.大狗類.classDogextendsA/繼承privateStringspec;/這個對象含有自己獨特屬性voidsetspec(Stringspec)this.spec=spec;Stringgetspec()returnspec;Companyp1=Company.getC();/小狗的構(gòu)造方法publicDog()publicDog(Stringname)super(name);publicDo

11、g(Stringname,intage)super(name,age);publicDog(Stringname,intage,Stringvoice,Stringbeizhu)super(name,age,voice,beizhu);publicDog(Stringname,intage,Stringvoice,Stringbeizhu,Stringspec)super(name,age,voice,beizhu);setspec(spec);publicStringtalk()/子類“重寫”父類的方法returngetname()+:+getvoice()+:+getspec()+ame;

12、/重寫抽象方法publicStringprint()returngetname()+getage();/.貓咪類.classCatextendsApublicCat()publicCat(Stringname)super(name);publicCat(Stringname,intage)super(name,age);publicCat(Stringname,intage,Stringvoice,Stringbeizhu)super(name,age,voice,beizhu);/重寫抽象方法publicStringprint()returngetname()+getbeizhu();/.多

13、線程.classMyThimplementsRunnableintnum;MyTh();MyTh(intnum)this.num=num;publicvoidrun()while(num0)sale();System.out.println(salestop!);synchronizedvoidsale()/同步方法if(num0)tryThread.sleep(0,1);catch(Exceptione)System.out.println(sale:+Thread.currentThread().getName()+:+num-);classT/.主函數(shù).publicstaticvoidm

14、ain(Stringargs)System.out.println(輸出動物的部分或全部信息);System.out.println(姓名+年齡+聲音+備注+公司);Dogd1=newDog(dwangcai,6,wanwan,nothing,iamagooddog!);Dogd2=newDog(dxiaohei,9,wanwan,weakness);Dogd3=newDog(dxiaocai,3,wanwan,young);Dogd4=newDog(dming,3,wanwan,young);Catc1=newCat(cmiao,5,miaomiao,nothing);Catc2=newCa

15、t(cxiaomi,1,miaomiao,nothing);Catc3=newCat(capple,3,miaomiao,nothing);Catc4=newCat(cwindy,4,miaomiao,nothing);Catc5=newCat(cmm,2,miaomiao,nothing);/信息數(shù)組Listname=newArrayList();name.add(d1.all();name.add(d2.all();name.add(d3.all();name.add(d4.all();name.add(c1.all();name.add(c2.all();name.add(c3.all(

16、);name.add(c4.all();name.add(c5.all();for(inti=0;iname.size();i+)System.out.println(name.get(i);/測試輸入對象System.out.println(n增加動物數(shù)量);intflag=0;System.out.print(輸入0拒絕添加,輸入1增加:);Scannerinput1=newScanner(System.in);tryflag=input1.nextInt();catch(Exceptione)System.out.println(e);System.out.println(輸入有誤);i

17、ntj=flag;if(j=1)Catc10=newCat();c10.input();System.out.println(c10.all();elseSystem.out.println(NoNeed!);/年齡數(shù)組ArrayListage=newArrayList();age.add(d1.getage();age.add(d2.getage();age.add(d3.getage();age.add(d4.getage();age.add(c1.getage();age.add(c2.getage();age.add(c3.getage();age.add(c4.getage();ag

18、e.add(c5.getage();/對年齡進(jìn)行分析anlyage(age);/隨即賣掉X只動物randonsale(name,d1);/多線程duosale(d1.num);/.函數(shù)功能塊./方法的重載publicstaticvoidcampare(Stringa,Stringb)System.out.println(a.equals(b);publicstaticvoidcampare(inta,intb)System.out.println(較大的值:+Math.max(a,b);System.out.println(較小的值:+Math.min(a,b);/多線程publicstati

19、cvoidduosale(intnum)System.out.print(多線程需要買所有的動物嗎?按0否認(rèn),其他數(shù)字確定:);inti=0;Scannerinput1=newScanner(System.in);tryi=input1.nextInt();catch(Exceptione)System.out.println(e);System.out.println(輸入有誤);intj=i;if(j!=0)Runnabler=newMyTh(num);newThread(r).start();newThread(r).start();newThread(r).start();elseSy

20、stem.out.println(over!);/賣多少只動物(隨即抽?。﹑ublicstaticvoidrandonsale(Listname,Dogd)System.out.print(n需要賣多少只動物,請輸入:(數(shù)量少于+d.num+):);intnum=0;Scannerinput1=newScanner(System.in);trynum=input1.nextInt();catch(Exceptione)System.out.println(e);System.out.println(輸入有誤);d.num=d.num-num;System.out.println(賣+num+只

21、動物:);Collections.shuffle(name);tryfor(inti=0;inum;i+)System.out.println(name.get(i);catch(Exceptione)System.out.println(e);System.out.println(最后剩余的數(shù)目為:+d.num+nn);/對動物年齡進(jìn)行分析publicstaticvoidanlyage(ArrayListage)System.out.println(n對動物年齡進(jìn)行分析);Collections.sort(age);System.out.println(n對動物年齡從低到高排序結(jié)果:);fo

22、r(inti=0;iage.size();i+)System.out.print(age.get(i)+);System.out.println(n動物最大的是年齡:+Collections.max(age);/最大數(shù)值System.out.println(n動物最小的是年齡:+Collections.min(age);/最小數(shù)值System.out.println(n綜合分析“);/*inta=(int)Collections.max(age);for(inti=0;i=a;i+)System.out.println(年齡為+i+歲的有:+Collections.frequency(age,

23、i);*/*/增加動物數(shù)量publicstaticvoidaddanimal()System.out.println(n增加動物數(shù)量);inti=0;System.out.print(請輸入需要添加的數(shù)目:);Scannerinput1=newScanner(System.in);tryi=input1.nextInt();catch(Exceptione)System.out.println(e);System.out.println(輸入有誤);for(intj=0;ji;j+)Catc10=newCat();c10.input();System.out.println(c10.all()*/*/輸出兩個實例比較System.out.println(輸出兩個實例比較);campare(d1.getname(),c1.getname();campare(d1.getage(),c1.geta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論