JAVA面向對象設計寵物類方式
更新時間:2024年10月12日 09:32:42 作者:箱子man
本指南涉及JAVA面向對象的寵物類設計,包括寵物類的父類及其子類小貓類和小狗類,用戶可以選擇養(yǎng)貓或養(yǎng)狗,給寵物起名字,實現(xiàn)喂食互動,同時寵物具有飽食度和快樂度屬性,適合初學者學習面向對象設計
JAVA面向對象設計寵物類
需求:
設計寵物類,用戶可以自由選擇養(yǎng)貓還是養(yǎng)狗,可以給寵物起名字,還可以實現(xiàn)喂食互動的功能,寵物需要有飽食度和快樂度。
寵物類【父類】
package cn.cxy.exec; public class Pet { String name; int full; int happy; public Pet(String name) { this(name, 50, 50); } public Pet(String name,int full,int happy) { this.name = name; this.full = full; this.happy = happy; } public void feed() {//寵物的喂食方法 if(full == 100) { System.out.println(name+"已經吃飽了"); return; } System.out.println("給"+name+"喂食"); full += 10; System.out.println("飽食度:"+full); } public void play() {//寵物的互動玩耍方法 if(full == 0) { System.out.println(name+"已經餓得玩不動了"); return; } System.out.println("陪"+name+"玩耍"); happy += 10; full -= 10; System.out.println("快樂度:"+happy); System.out.println("飽食度:"+full); } public void punish() {//寵物的懲罰方法 //子類不同的代碼,改成調方法 System.out.println( "打"+name+"的pp,"+name+"哭叫:"+cry()); happy -= 10; System.out.println("快樂度:"+happy); } public String cry() {//小動物被打哭了 //無意義代碼 //cry()方法需要在子類中重寫,返回具體哭叫聲 return "此處有哭叫聲"; } }
小貓類【子類】
package cn.cxy.exec; public class Cat extends Pet{ public Cat(String name, int full, int happy) { super(name, full, happy); } public Cat(String name) { super(name); } @Override public String cry() { return "喵~"; } }
小狗類【子類】
package cn.cxy.exec; public class Dog extends Pet { public Dog(String name, int full, int happy) { super(name, full, happy); } public Dog(String name) { super(name); } @Override public String cry() { return "汪~"; } }
測試類
package cn.cxy.exec; import java.util.Random; import java.util.Scanner; public class TestPet { public static void main(String[] args) { System.out.println("1. 狗"); System.out.println("2. 貓"); System.out.print("選擇:> "); int c = new Scanner(System.in).nextInt(); System.out.print("給寵物起個名字:"); String n = new Scanner(System.in).nextLine(); //定義貓狗變量 Dog dog = null; Cat cat = null; if(c == 1) { dog = new Dog(n); play(dog); } else { cat = new Cat(n); play(cat); } } private static void play(Dog dog) { System.out.println("按回車執(zhí)行"); while(true) { new Scanner(System.in).nextLine(); int r = new Random().nextInt(6); switch(r) { case 0: dog.feed(); break; case 1: dog.play(); break; default: dog.punish(); break; } } } private static void play(Cat cat) { System.out.println("按回車執(zhí)行"); while(true) { new Scanner(System.in).nextLine(); int r = new Random().nextInt(6); switch(r) { case 0: cat.feed(); break; case 1: cat.play(); break; default: cat.punish(); break; } } } }
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java實現(xiàn)超大Excel文件解析(XSSF,SXSSF,easyExcel)
這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)超大Excel文件解析(XSSF,SXSSF,easyExcel)以及速度的對比,感興趣的可以了解一下2022-07-07Spring?Boot?實現(xiàn)?WebSocket?的代碼示例
WebSocket?協(xié)議是獨立的基于?TCP?協(xié)議。它與?HTTP?的唯一關系是,它的握手會被?HTTP?服務器解釋為?Upgrade?請求,接下來通過本文給大家介紹Spring?Boot?實現(xiàn)?WebSocket?示例詳解,需要的朋友可以參考下2022-04-04使用Java代碼實現(xiàn)RocketMQ的生產與消費消息
這篇文章介紹一下其他的小組件以及使用Java代碼實現(xiàn)生產者對消息的生成,消費者消費消息等知識點,并通過代碼示例介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-07-07ShardingSphere JDBC強制路由使用的項目實踐
在某些特定場景下,可能需要繞過分片規(guī)則直接定位到特定的數(shù)據(jù)庫或表,這種情況下就可以使用HintRouting,本文就來介紹一下ShardingSphere JDBC強制路由使用的項目實踐,感興趣的可以了解一下2024-06-06