JAVA面向?qū)ο笤O(shè)計寵物類方式
更新時間:2024年10月12日 09:32:42 作者:箱子man
本指南涉及JAVA面向?qū)ο蟮膶櫸镱愒O(shè)計,包括寵物類的父類及其子類小貓類和小狗類,用戶可以選擇養(yǎng)貓或養(yǎng)狗,給寵物起名字,實現(xiàn)喂食互動,同時寵物具有飽食度和快樂度屬性,適合初學(xué)者學(xué)習(xí)面向?qū)ο笤O(shè)計
JAVA面向?qū)ο笤O(shè)計寵物類
需求:
設(shè)計寵物類,用戶可以自由選擇養(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+"已經(jīng)吃飽了");
return;
}
System.out.println("給"+name+"喂食");
full += 10;
System.out.println("飽食度:"+full);
}
public void play() {//寵物的互動玩耍方法
if(full == 0) {
System.out.println(name+"已經(jīng)餓得玩不動了");
return;
}
System.out.println("陪"+name+"玩耍");
happy += 10;
full -= 10;
System.out.println("快樂度:"+happy);
System.out.println("飽食度:"+full);
}
public void punish() {//寵物的懲罰方法
//子類不同的代碼,改成調(diào)方法
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;
}
}
}
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實現(xiàn)超大Excel文件解析(XSSF,SXSSF,easyExcel)
這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)超大Excel文件解析(XSSF,SXSSF,easyExcel)以及速度的對比,感興趣的可以了解一下2022-07-07
SpringBoot中操作Bean的生命周期的方法總結(jié)
在SpringBoot應(yīng)用中,管理和操作Bean的生命周期是一項關(guān)鍵的任務(wù),這不僅涉及到如何創(chuàng)建和銷毀Bean,還包括如何在應(yīng)用的生命周期中對Bean進行精細控制,本文給大家總結(jié)了SpringBoot中操作Bean的生命周期的方法,需要的朋友可以參考下2023-12-12
Java中Maven項目導(dǎo)出jar包配置的示例代碼
這篇文章主要介紹了Java中Maven項目導(dǎo)出jar包配置的示例代碼,需要的朋友可以參考下2018-11-11
Spring?Boot?實現(xiàn)?WebSocket?的代碼示例
WebSocket?協(xié)議是獨立的基于?TCP?協(xié)議。它與?HTTP?的唯一關(guān)系是,它的握手會被?HTTP?服務(wù)器解釋為?Upgrade?請求,接下來通過本文給大家介紹Spring?Boot?實現(xiàn)?WebSocket?示例詳解,需要的朋友可以參考下2022-04-04
使用Java代碼實現(xiàn)RocketMQ的生產(chǎn)與消費消息
這篇文章介紹一下其他的小組件以及使用Java代碼實現(xiàn)生產(chǎn)者對消息的生成,消費者消費消息等知識點,并通過代碼示例介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-07-07
ShardingSphere JDBC強制路由使用的項目實踐
在某些特定場景下,可能需要繞過分片規(guī)則直接定位到特定的數(shù)據(jù)庫或表,這種情況下就可以使用HintRouting,本文就來介紹一下ShardingSphere JDBC強制路由使用的項目實踐,感興趣的可以了解一下2024-06-06

