首页 分享 宠物系统重构与扩展

宠物系统重构与扩展

来源:萌宠菠菠乐园 时间:2025-01-01 02:11

4.在第三题的进行功能扩展。

(1)增加一种新的动物类型:Pig(猪),实现shout()方法。

(2)修改Store类的get()方法:如果传入的参数是字符串dog,则返回一个Dog对象;如果传入的参数是字串           pig,则返回一个Pig对象;否则,返回一个Cat对象。

(3)在测试类Test中加以测试:向Store类的get()方法中传入参数“pig”,并返回的对象中调用shout()方          法,看看与预期的结果是否一致。

package com.homework.demo.test6_4;

/**

* 动物接口

* @author suixin

*

*/

public interface Animal {

void shout();

}

package com.homework.demo.test6_4;

public class Cat implements Animal {

@Override

public void shout() {

// TODO Auto-generated method stub

System.out.println("M M!");

}

}

package com.homework.demo.test6_4;

public class Dog implements Animal {

@Override

public void shout() {

// TODO Auto-generated method stub

System.out.println("W W!");

}

}

package com.homework.demo.test6_4;

public class Pig implements Animal {

@Override

public void shout() {

// TODO Auto-generated method stub

System.out.println("猪叫!");

}

}

package com.homework.demo.test6_4;

public class Store {

public static Animal get (String choice) {

if (choice.equalsIgnoreCase("dog")) {

return new Dog();

}else if (choice.equalsIgnoreCase("pig")) {

return new Pig();

}else {

return new Cat();

}

}

}

package com.homework.demo.test6_4;

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

Animal al = Store.get("dog");

al.shout();

Animal a2 = Store.get("pig");

a2.shout();

}

}

5.对贯穿本书的案列电子宠物系统的类结构进行重构,要求如下:>定义Eatble接口,在接口中定义eat( )方法,表示吃饭功能。

>定义FlyingDiscCatchable接口,在接口定义中catchingFiyDise( )方法,表示接飞盘功能。

>定义Swimmable接口,在接口中定义swim( )方法,表示游泳功能。

>定义抽象类Pet,包括宠物名称(mane),健康值(health),和主人亲密度(love)属性。并提供抽象方法print( ),用来输出宠物信息。

>定义狗类Dog,继承Pet类,实现Eatable和FlyingDiscCatchable接口,并重写或实现各个方法。

>定义企鹅类Penguin,继承Pet类,实现Eatable和Swimmble接口,并重写或实现各个方法。

>编写测试类,实现狗吃饭,企鹅游泳和狗玩飞盘游戏的功能,并输出企鹅信息。

package com.homework.demo.test6_5;

/**

* 宠物狗类继承宠物父类,实现接飞盘接口和吃饭接口

* @author suixin

*

*/

public class Dog extends Pet implements Eatable, FlyingDiscCatchable {

public Dog(String name, int health, int love) {

super(name, health, love);

// TODO Auto-generated constructor stub

}

@Override

public void catchingFlyDisc() {//接飞盘

// TODO Auto-generated method stub

System.out.println("狗狗"+super.name+"正在接飞盘。");

super.health -= 10;

super.love +=5;

}

@Override

public void eat() {//吃饭

// TODO Auto-generated method stub

System.out.println("狗狗"+super.name+"吃饱啦!健康值增加5。");

super.health += 5;

}

@Override

public void print() {

// TODO Auto-generated method stub

System.out.println("宠物的自白:n我的名字叫"+this.name+",健康值是"+this.health

+",和主人的亲密度是"+this.love);

}

}

package com.homework.demo.test6_5;

/**

* 吃饭功能接口

* @author suixin

*

*/

public interface Eatable {

void eat();//吃饭功能

}

package com.homework.demo.test6_5;

/**

* 接飞盘功能接口

* @author suixin

*

*/

public interface FlyingDiscCatchable {

void catchingFlyDisc(); //接飞盘功能

}

package com.homework.demo.test6_5;

/**

* 企鹅类

* @author suixin

*

*/

public class Penguin extends Pet implements Eatable, Swimmable {

public Penguin(String name, int health, int love) {

super(name, health, love);

// TODO Auto-generated constructor stub

}

@Override

public void swim() {//游泳

// TODO Auto-generated method stub

System.out.println("企鹅"+super.name+"正在游泳。");

super.health -= 10;

super.love +=5;

}

@Override

public void eat() {//吃饭

// TODO Auto-generated method stub

System.out.println("企鹅"+super.name+"吃饱啦!健康值增加5。");

super.health += 5;

}

@Override

public void print() {

// TODO Auto-generated method stub

System.out.println("宠物的自白:n我的名字叫"+this.name+",健康值是"+this.health

+",和主人的亲密度是"+this.love);

}

}

package com.homework.demo.test6_5;

/**

* 宠物父类

* @author suixin

*

*/

public abstract class Pet {

String name; //宠物昵称

int health = 100; //健康值

int love = 0; //亲密度

public Pet(String name, int health, int love) {

super();

this.name = name;

this.health = health;

this.love = love;

}

/**

* 输出基本信息

*/

public abstract void print();

/**

* 输出实现功能后的属性值

*/

public void print2() {

System.out.println(this.name+"当前的健康值是"+this.health+",和主人的亲密度是"+this.love);

}

}

package com.homework.demo.test6_5;

/**

* 游泳功能接口

* @author suixin

*

*/

public interface Swimmable {

void swim(); //游泳功能

}

package com.homework.demo.test6_5;

/**

* 测试类

* @author suixin

*

*/

public class TestPet {

public static void main(String[] args) {

// TODO Auto-generated method stub

Dog dog = new Dog("旺财", 80, 0);//创建狗的对象

dog.print(); //调用输出信息方法

dog.eat(); //吃饭方法

dog.print2(); //显示当前属性值方法

dog.catchingFlyDisc(); //接飞盘方法

dog.print2();//显示当前属性值

System.out.println("n");

Penguin penguin = new Penguin("鸥欧", 80, 0); //创建企鹅对象

penguin.print();//调用输出信息方法

penguin.eat();//吃饭方法

penguin.print2();//显示当前属性值方法

penguin.swim();//游泳方法

penguin.print2();//显示当前属性值

}

}

相关知识

重构第九章——简化条件语句
中国传统伦理道德的现代化转型与重构
基于vue宠物领养系统有什么
当代摄影的创新与重构:信念与方法
社交媒体场景下裕固族社会交往的变迁与重构
php添加openssl扩展
“变化多端”的回忆:是记不住,还是在不断“重构”?
【毕业设计】基于SpringBoot + Vue的宠物健康顾问系统
经管之家:行为哲学重构心理学
SSM宠物领养系统:课程设计与管理员功能

网址: 宠物系统重构与扩展 https://www.mcbbbk.com/newsview936127.html

所属分类:萌宠日常
上一篇: python宠物模拟
下一篇: 宠物电子狗供应商,价格,宠物电子

推荐分享