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;
}
}
}
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
