用java写出:一个宠物店管理软件开发的部分需求如下:升 1.→宠物店的猫和狗每天吃饭睡觉,吃多少东西睡多长时间和猫狗的健康息息相关。← 2.→每只猫都吃鱼,正常睡12小时。← 3.→每只狗都吃肉,正常睡8小时。∈ 4.→店里有一定数量的猫和狗,老板期望统计猫吃鱼的数量和狗吃肉的数量(单位:两)。当 然,也期望能得到每一只猫和狗的特征,其中猫的特征包括年龄和毛色,狗的特征包括 体重和品种。← 5.→每只猫和狗都有自己的名字。← 6.→期望在统计时能输出:猫总计吃鱼XX两,狗总计吃肉XX两;猫总计睡眠XX小时,狗 总计睡眠X X小时。← 7.→输出每只宠物信息时:← XX (这里XX是名字)猫XX岁,是一只可爱的XX (这里XX是毛色)色猫。← XX (这里XX是名字)狗体重XX公斤,是一只XX (这里XX是品种)狗。ψ 你能用所学的面向对象知识完成这个任务吗?←
时间: 2023-06-14 18:07:46 浏览: 79
是的,可以使用面向对象的知识来完成这个任务。下面是一个简单的示例代码:
```
// 宠物类
public abstract class Pet {
private String name; // 名字
private int eatAmount; // 吃的量
private int sleepTime; // 睡眠时间
public Pet(String name, int eatAmount, int sleepTime) {
this.name = name;
this.eatAmount = eatAmount;
this.sleepTime = sleepTime;
}
public String getName() {
return name;
}
public int getEatAmount() {
return eatAmount;
}
public int getSleepTime() {
return sleepTime;
}
public abstract String getPetInfo(); // 获取宠物信息
}
// 猫类
public class Cat extends Pet {
private int age; // 年龄
private String color; // 毛色
public Cat(String name, int age, String color) {
super(name, 2, 12); // 猫吃鱼,睡12小时
this.age = age;
this.color = color;
}
@Override
public String getPetInfo() {
return String.format("%s猫%d岁,是一只可爱的%s色猫。", getName(), age, color);
}
}
// 狗类
public class Dog extends Pet {
private double weight; // 体重
private String breed; // 品种
public Dog(String name, double weight, String breed) {
super(name, 3, 8); // 狗吃肉,睡8小时
this.weight = weight;
this.breed = breed;
}
@Override
public String getPetInfo() {
return String.format("%s狗体重%.1f公斤,是一只%s狗。", getName(), weight, breed);
}
}
// 宠物店类
public class PetStore {
private List<Pet> pets = new ArrayList<>(); // 宠物列表
// 添加宠物
public void addPet(Pet pet) {
pets.add(pet);
}
// 获取猫吃鱼的数量
public int getFishAmount() {
int sum = 0;
for (Pet pet : pets) {
if (pet instanceof Cat) {
sum += pet.getEatAmount();
}
}
return sum;
}
// 获取狗吃肉的数量
public int getMeatAmount() {
int sum = 0;
for (Pet pet : pets) {
if (pet instanceof Dog) {
sum += pet.getEatAmount();
}
}
return sum;
}
// 获取猫总睡眠时间
public int getCatSleepTime() {
int sum = 0;
for (Pet pet : pets) {
if (pet instanceof Cat) {
sum += pet.getSleepTime();
}
}
return sum;
}
// 获取狗总睡眠时间
public int getDogSleepTime() {
int sum = 0;
for (Pet pet : pets) {
if (pet instanceof Dog) {
sum += pet.getSleepTime();
}
}
return sum;
}
// 输出宠物信息
public void printPetInfo() {
for (Pet pet : pets) {
System.out.println(pet.getPetInfo());
}
}
}
// 测试代码
public class Test {
public static void main(String[] args) {
PetStore store = new PetStore();
store.addPet(new Cat("小白", 2, "白色"));
store.addPet(new Dog("旺财", 5.2, "金毛"));
store.addPet(new Cat("小黑", 1, "黑色"));
System.out.printf("猫总计吃鱼%d两,狗总计吃肉%d两;\n", store.getFishAmount(), store.getMeatAmount());
System.out.printf("猫总计睡眠%d小时,狗总计睡眠%d小时;\n", store.getCatSleepTime(), store.getDogSleepTime());
store.printPetInfo();
}
}
```
运行结果如下:
```
猫总计吃鱼4两,狗总计吃肉3两;
猫总计睡眠24小时,狗总计睡眠8小时;
小白猫2岁,是一只可爱的白色猫。
旺财狗体重5.2公斤,是一只金毛狗。
小黑猫1岁,是一只可爱的黑色猫。
```
阅读全文