JAVA面向对象设计宠物类方式
作者:箱子man
本指南涉及JAVA面向对象的宠物类设计,包括宠物类的父类及其子类小猫类和小狗类,用户可以选择养猫或养狗,给宠物起名字,实现喂食互动,同时宠物具有饱食度和快乐度属性,适合初学者学习面向对象设计
JAVA面向对象设计宠物类
需求:
设计宠物类,用户可以自由选择养猫还是养狗,可以给宠物起名字,还可以实现喂食互动的功能,宠物需要有饱食度和快乐度。
宠物类【父类】
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("按回车执行"); 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("按回车执行"); 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; } } } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。