首页 分享 12.10综合案例:宠物商店

12.10综合案例:宠物商店

来源:萌宠菠菠乐园 时间:2024-09-23 18:58

假设有一个宠物商店,在这个商店里会出售各种宠物供用户选择,实现宠物商品的上架、下架、关键字模糊查询的功能。
1、创建宠物接口:IPet

public interface IPet { //定义宠物标准 public String getName();//获得宠物名称 public String getColor(); //获得宠物颜色 } 1234

2、宠物商店与宠物的接口标准有关,并不用关心宠物的具体子类,所以此时可以直接创建PetShop类。

public class PetShop { //宠物商店 //利用链表在一个宠物商店中保存有多个宠物的信息private ILink<IPet> allPets=new Link<IPet>();/** * 宠物信息上架 * @param pet要上架的宠物 */public void add(IPet pet) { //追加宠物,商品上架this.allPets .add(pet); //集合中保存对象}/** * 宠物信息下架(删除),链表删除操作需要equals()方法支持 * @param pet 要删除的宠物信息 */public void delete(IPet pet) {this.allPets.remove(pet); //删除数据}/** * 根据关键字模糊查询宠物信息,由于返回多个宠物信息,所以通过链表保存返回结果 * @param keyword模糊查询关键字 * @return 数据查询结果,如果没有结果则链表长度为0(size()==0) */public ILink<IPet> search(String keyword){ILink<IPet> searchResult=new Link<IPet>(); //保存查询结果Object [] result=this.allPets .toArray(); //获取全部数据if(result!=null) { //存在有宠物信息 for(Object obj:result) { IPet pet=(IPet)obj; //向下转型以调用接口方法 if(pet.getName().contains(keyword)||pet.getColor().contains(keyword)) { searchResult.add(pet); //保存查询结果 } }}return searchResult;} }

123456789101112131415161718192021222324252627282930313233343536373839404142

3、依据IPet宠物标准定义宠物猫和狗,但是需要注意的是,为保证链表中的contains()、remove方法可以正常使用,需要覆写equals()方法。

宠物猫

public class Cat implements IPet { private String name; private String color;public Cat(String name, String color) {this.name = name;this.color = color;}@Overridepublic String getName() {return this.name;}@Overridepublic String getColor() {return this.color;}@Overridepublic boolean equals(Object obj) {if(obj==null) {return false;}if(!(obj instanceof Cat)) {return false;}if(this==obj) {return true;}Cat cat=(Cat)obj;return this.name .equals(cat.name)&&this.color.equals(cat.color);}@Overridepublic String toString() {return "宠物猫 [名字=" + name + ", 颜色=" + color + "]";} }

1234567891011121314151617181920212223242526272829303132333435363738394041424344

宠物狗

public class Dog implements IPet { private String name; private String color;public Dog(String name, String color) {this.name = name;this.color = color;}@Overridepublic String getName() {return this.name;}@Overridepublic String getColor() {return this.color;}@Overridepublic boolean equals(Object obj) {if(obj==null) {return false;}if(!(obj instanceof Dog)) {return false;}if(this==obj) {return true;}Dog dog=(Dog)obj;return this.name .equals(dog.name)&&this.color.equals(dog.color);}@Overridepublic String toString() {return "宠物狗 [名字=" + name + ", 颜色=" + color + "]";} }

1234567891011121314151617181920212223242526272829303132333435363738394041424344

4、编写主类进行代码测试

public class PetDemo289 { public static void main(String[] args) {PetShop shop=new PetShop(); //定义宠物商店shop.add(new Dog("大黄狗","黄色")); //宠物上架shop.add(new Dog("大黑狗","黑色")); //宠物上架shop.add(new Cat("大花猫","花色")); //宠物上架shop.add(new Cat("大灰猫","灰色")); //宠物上架shop.delete(new Cat("大灰猫","灰色")); //宠物下架Object result[] =shop.search("黄").toArray(); //数据搜索for(Object obj:result) { //循环输出检索结果System.out.println(obj);}} } 123456789101112131415

执行结果

宠物狗 [名字=大黄狗, 颜色=黄色] 1

相关知识

宠物商店 案例分析
宠物商店营销策略
通过几个宠物商店的案例来看看他们的设计技巧
今天我开始学习:PETSHOP3.0宠物商店(经典案例)
宠物商店详细设计说明书
宠物商店加盟
实例分析:宠物商店
网上宠物商店系统开题报告
Java上机作业宠物商店
科学网—宠物商店

网址: 12.10综合案例:宠物商店 https://www.mcbbbk.com/newsview236188.html

所属分类:萌宠日常
上一篇: 一年制硕士=水硕?错误!人大女王
下一篇: 近阶段幼儿角色游戏主题有宠物医院

推荐分享