第9次Java作业+LSYang

【P270】宠物商店代码(各个不同功能的类放在不同的包中定义)

org.lsy.demo.a里的Pet.java

1 package org.lsy.demo.a;
2 
3 public interface Pet{    // 定义宠物接口
4     public String getName() ;
5     public String getColor() ;
6     public int getAge() ;
7 }

org.lsy.demo.b里的Cat.java

 1 package org.lsy.demo.b;
 2 
 3 import org.lsy.demo.a.Pet ;
 4 
 5  public class Cat implements Pet{    // 猫是宠物,实现接口
 6     private String name ;    // 宠物名字
 7     private String color ;    // 宠物颜色
 8     private int age ;        // 宠物年龄
 9     public Cat(String name,String color,int age){
10         this.setName(name) ;
11         this.setColor(color) ;
12         this.setAge(age) ;
13     }
14     public void setName(String name){
15         this.name = name ;
16     }
17     public void setColor(String color){
18         this.color = color;
19     }
20     public void setAge(int age){
21         this.age = age ;
22     }
23     public String getName(){
24         return this.name ;
25     }
26     public String getColor(){
27         return this.color ;
28     }
29     public int getAge(){
30         return this.age ;
31     }
32 };

org.lsy.demo.b里的Dog.java

 1 package org.lsy.demo.b;
 2 
 3 import org.lsy.demo.a.Pet;
 4 
 5 public class Dog implements Pet{    // 狗是宠物,实现接口
 6     private String name ;    // 宠物名字
 7     private String color ;    // 宠物颜色
 8     private int age ;        // 宠物年龄
 9     public Dog(String name,String color,int age){
10         this.setName(name) ;
11         this.setColor(color) ;
12         this.setAge(age) ;
13     }
14     public void setName(String name){
15         this.name = name ;
16     }
17     public void setColor(String color){
18         this.color = color;
19     }
20     public void setAge(int age){
21         this.age = age ;
22     }
23     public String getName(){
24         return this.name ;
25     }
26     public String getColor(){
27         return this.color ;
28     }
29     public int getAge(){
30         return this.age ;
31     }
32 };

org.lsy.demo.c里的PetShop.java

 1 package org.lsy.demo.c;
 2 
 3 import org.lsy.demo.a.Pet;
 4 
 5 public class PetShop{    // 宠物商店
 6     private Pet[] pets ;    // 保存一组宠物
 7     private int foot ;
 8     public PetShop(int len){
 9         if(len>0){
10             this.pets = new Pet[len] ;    // 开辟数组大小
11         }else{
12             this.pets = new Pet[1] ;    // 至少开辟一个空间
13         }
14     }
15     public boolean add(Pet pet){    // 增加的是一个宠物
16         if(this.foot<this.pets.length){
17             this.pets[this.foot] = pet ;    // 增加宠物
18             this.foot ++ ;
19             return true ;
20         }else{
21             return false ;
22         }
23     }
24     public Pet[] search(String keyWord){
25         // 应该确定有多少个宠物符合要求
26         Pet p[] = null ;
27         int count = 0 ;    // 记录下会有多少个宠物符合查询结果
28         for(int i=0;i<this.pets.length;i++){
29             if(this.pets[i]!=null){        // 表示此位置有宠物
30                 if(this.pets[i].getName().indexOf(keyWord)!=-1
31                     ||this.pets[i].getColor().indexOf(keyWord)!=-1){
32                     count++ ;    // 修改查找到的记录数
33                 }
34             }
35         }
36         p = new Pet[count] ;    // 开辟指定的大小空间
37         int f = 0 ;    // 增加元素的位置标记
38         for(int i=0;i<this.pets.length;i++){
39             if(this.pets[i]!=null){        // 表示此位置有宠物
40                 if(this.pets[i].getName().indexOf(keyWord)!=-1
41                     ||this.pets[i].getColor().indexOf(keyWord)!=-1){
42                     p[f] = this.pets[i] ;
43                     f++ ;
44                 }
45             }
46         }
47         return p ;
48 
49     }
50 };

org.lsy.demo.c里的PetShopDemo.java

 1 package org.lsy.demo.d;
 2 
 3 import org.lsy.demo.b.Cat;
 4 import org.lsy.demo.b.Dog;
 5 import org.lsy.demo.a.Pet;
 6 import org.lsy.demo.c.PetShop;
 7 
 8 public class PetShopDemo{
 9     public static void main(String args[]){
10         PetShop ps = new PetShop(5) ;    // 五个宠物
11         ps.add(new Cat("白猫","白色的",2)) ;    // 增加宠物,成功
12         ps.add(new Cat("黑猫","黑色的",3)) ;    // 增加宠物,成功
13         ps.add(new Cat("花猫","花色的",3)) ;    // 增加宠物,成功
14         ps.add(new Dog("拉步拉多","黄色的",3)) ;    // 增加宠物,成功
15         ps.add(new Dog("金毛","金色的",2)) ;    // 增加宠物,成功
16         ps.add(new Dog("黄狗","黑色的",2)) ;    // 增加宠物,失败
17         print(ps.search("黑")) ;
18     }
19     public static void print(Pet p[]){
20         for(int i=0;i<p.length;i++){
21             if(p[i]!=null){
22                 System.out.println(p[i].getName() + "," + p[i].getColor()
23                     +"," + p[i].getAge()) ;
24             }
25         }
26     }
27 };

 

posted on 2016-05-06 14:33  bgd140201131  阅读(191)  评论(0编辑  收藏  举报