黑马程序员技术交流社区

标题: 面向对象练习,宠物商店案例 [打印本页]

作者: 清风小雨    时间: 2016-10-23 22:36
标题: 面向对象练习,宠物商店案例
                            ------宠物猫
                            -
宠物商店---宠物标准 -----宠物狗
                            -
                            ------其他宠物

模拟现实宠物商店,从宠物商店增加宠物和查询。
  1. interface Pet{        // 定义宠物接口
  2.         public String getName() ;
  3.         public String getColor() ;
  4.         public int getAge() ;
  5. }
  6. class Cat implements Pet{        // 猫是宠物,实现接口
  7.         private String name ;        // 宠物名字
  8.         private String color ;        // 宠物颜色
  9.         private int age ;                // 宠物年龄
  10.         public Cat(String name,String color,int age){
  11.                 this.setName(name) ;
  12.                 this.setColor(color) ;
  13.                 this.setAge(age) ;
  14.         }
  15.         public void setName(String name){
  16.                 this.name = name ;
  17.         }
  18.         public void setColor(String color){
  19.                 this.color = color;
  20.         }
  21.         public void setAge(int age){
  22.                 this.age = age ;
  23.         }
  24.         public String getName(){
  25.                 return this.name ;
  26.         }
  27.         public String getColor(){
  28.                 return this.color ;
  29.         }
  30.         public int getAge(){
  31.                 return this.age ;
  32.         }
  33. };
  34. class Dog implements Pet{        // 狗是宠物,实现接口
  35.         private String name ;        // 宠物名字
  36.         private String color ;        // 宠物颜色
  37.         private int age ;                // 宠物年龄
  38.         public Dog(String name,String color,int age){
  39.                 this.setName(name) ;
  40.                 this.setColor(color) ;
  41.                 this.setAge(age) ;
  42.         }
  43.         public void setName(String name){
  44.                 this.name = name ;
  45.         }
  46.         public void setColor(String color){
  47.                 this.color = color;
  48.         }
  49.         public void setAge(int age){
  50.                 this.age = age ;
  51.         }
  52.         public String getName(){
  53.                 return this.name ;
  54.         }
  55.         public String getColor(){
  56.                 return this.color ;
  57.         }
  58.         public int getAge(){
  59.                 return this.age ;
  60.         }
  61. };
  62. class PetShop{        // 宠物商店
  63.         private Pet[] pets ;        // 保存一组宠物
  64.         private int foot ;
  65.         public PetShop(int len){
  66.                 if(len>0){
  67.                         this.pets = new Pet[len] ;        // 开辟数组大小
  68.                 }else{
  69.                         this.pets = new Pet[1] ;        // 至少开辟一个空间
  70.                 }
  71.         }
  72.         public boolean add(Pet pet){        // 增加的是一个宠物
  73.                 if(this.foot<this.pets.length){
  74.                         this.pets[this.foot] = pet ;        // 增加宠物
  75.                         this.foot ++ ;
  76.                         return true ;
  77.                 }else{
  78.                         return false ;
  79.                 }
  80.         }
  81.         public Pet[] search(String keyWord){
  82.                 // 应该确定有多少个宠物符合要求
  83.                 Pet p[] = null ;
  84.                 int count = 0 ;        // 记录下会有多少个宠物符合查询结果
  85.                 for(int i=0;i<this.pets.length;i++){
  86.                         if(this.pets[i]!=null){                // 表示此位置有宠物
  87.                                 if(this.pets[i].getName().indexOf(keyWord)!=-1
  88.                                         ||this.pets[i].getColor().indexOf(keyWord)!=-1){
  89.                                         count++ ;        // 修改查找到的记录数
  90.                                 }
  91.                         }
  92.                 }
  93.                 p = new Pet[count] ;        // 开辟指定的大小空间
  94.                 int f = 0 ;        // 增加元素的位置标记
  95.                 for(int i=0;i<this.pets.length;i++){
  96.                         if(this.pets[i]!=null){                // 表示此位置有宠物
  97.                                 if(this.pets[i].getName().indexOf(keyWord)!=-1
  98.                                         ||this.pets[i].getColor().indexOf(keyWord)!=-1){
  99.                                         p[f] = this.pets[i] ;
  100.                                         f++ ;
  101.                                 }
  102.                         }
  103.                 }
  104.                 return p ;

  105.         }
  106. };
  107. public class PetShopDemo{
  108.         public static void main(String args[]){
  109.                 PetShop ps = new PetShop(5) ;        // 五个宠物
  110.                 ps.add(new Cat("白猫","白色的",2)) ;        // 增加宠物,成功
  111.                 ps.add(new Cat("黑猫","黑色的",3)) ;        // 增加宠物,成功
  112.                 ps.add(new Cat("花猫","花色的",3)) ;        // 增加宠物,成功
  113.                 ps.add(new Dog("拉步拉多","黄色的",3)) ;        // 增加宠物,成功
  114.                 ps.add(new Dog("金毛","金色的",2)) ;        // 增加宠物,成功
  115.                 ps.add(new Dog("黄狗","黑色的",2)) ;        // 增加宠物,失败
  116.                 print(ps.search("黑")) ;
  117.         }
  118.         public static void print(Pet p[]){
  119.                 for(int i=0;i<p.length;i++){
  120.                         if(p[i]!=null){
  121.                                 System.out.println(p[i].getName() + "," + p[i].getColor()
  122.                                         +"," + p[i].getAge()) ;
  123.                         }
  124.                 }
  125.         }
  126. };
复制代码

作者: wangyuit    时间: 2016-10-23 22:37
谢谢?!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2