国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > 接口设计的一个程序实例(宠物商店)

接口设计的一个程序实例(宠物商店)

来源:程序员人生   发布时间:2014-09-17 09:33:54 阅读次数:2590次

    外延     

                   以往写博客没有用那种目录的结构,今天终于会用了。如何使用目录结构请参照:目录结构的使用

    实例要求

                实现一个宠物商店,宠物商店的宠物可以有多种(数量由用户决定),试表示此种关系,并要求根据宠物的的关键字查找宠物的信息,所需要的宠物信息自行设计。

    所用知识

              接口,对象数组

    实例分析

             宠物信息可以自行设计,我们可以简单设计三个属性:名字、颜色、年龄
            宠物的类别很多、所以宠物应该是一个标准(接口)
            宠物商店有多种宠物,应该是一个宠物的对象数组  

    代码实现

          
interface Pet{ // 定义宠物接口 public String getName() ; public String getColor() ; public int getAge() ; } class Cat implements Pet{ // 猫是宠物,实现接口 private String name ; // 宠物名字 private String color ; // 宠物颜色 private int age ; // 宠物年龄 public Cat(String name,String color,int age){ this.setName(name) ; this.setColor(color) ; this.setAge(age) ; } public void setName(String name){ this.name = name ; } public void setColor(String color){ this.color = color; } public void setAge(int age){ this.age = age ; } public String getName(){ return this.name ; } public String getColor(){ return this.color ; } public int getAge(){ return this.age ; } }; class Dog implements Pet{ // 狗是宠物,实现接口 private String name ; // 宠物名字 private String color ; // 宠物颜色 private int age ; // 宠物年龄 public Dog(String name,String color,int age){ this.setName(name) ; this.setColor(color) ; this.setAge(age) ; } public void setName(String name){ this.name = name ; } public void setColor(String color){ this.color = color; } public void setAge(int age){ this.age = age ; } public String getName(){ return this.name ; } public String getColor(){ return this.color ; } public int getAge(){ return this.age ; } }; class PetShop{ // 宠物商店 private Pet[] pets ; // 保存一组宠物 private int foot ; public PetShop(int len){ if(len>0){ this.pets = new Pet[len] ; // 开辟数组大小 }else{ this.pets = new Pet[1] ; // 至少开辟一个空间 } } public boolean add(Pet pet){ // 增加的是一个宠物 if(this.foot<this.pets.length){ this.pets[this.foot] = pet ; // 增加宠物 this.foot ++ ; //foot 数组下标 return true ; }else{ return false ; } } public Pet[] search(String keyWord){ // 应该确定有多少个宠物符合要求 Pet p[] = null ; int count = 0 ; // 记录下会有多少个宠物符合查询结果 for(int i=0;i<this.pets.length;i++){ if(this.pets[i]!=null){ // 表示此位置有宠物 if(this.pets[i].getName().indexOf(keyWord)!=-1 ||this.pets[i].getColor().indexOf(keyWord)!=-1){ count++ ; // 修改查找到的记录数 } } } p = new Pet[count] ; // 开辟指定的大小空间 int f = 0 ; // 增加元素的位置标记 for(int i=0;i<this.pets.length;i++){ if(this.pets[i]!=null){ // 表示此位置有宠物 if(this.pets[i].getName().indexOf(keyWord)!=-1 ||this.pets[i].getColor().indexOf(keyWord)!=-1){ p[f] = this.pets[i] ; f++ ; } } } return p ; } }; public class PetShopDemo{ public static void main(String args[]){ PetShop ps = new PetShop(5) ; // 五个宠物 ps.add(new Cat("白猫","白色的",2)) ; // 增加宠物,成功 ps.add(new Cat("黑猫","黑色的",3)) ; // 增加宠物,成功 ps.add(new Cat("花猫","花色的",3)) ; // 增加宠物,成功 ps.add(new Dog("拉步拉多","黄色的",3)) ; // 增加宠物,成功 ps.add(new Dog("金毛","金色的",2)) ; // 增加宠物,成功 ps.add(new Dog("黄狗","黑色的",2)) ; // 增加宠物,失败 数组长度为5 print(ps.search("黑")) ; } public static void print(Pet p[]){ for(int i=0;i<p.length;i++){ if(p[i]!=null){ System.out.println(p[i].getName() + "," + p[i].getColor() +"," + p[i].getAge()) ; } } } };

       总结

         本程序最主要的是接口的设计,    注意查询时indexof的使用,程序设计要严谨(一些判断的使用)。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生