Java第七次作业

设计一个“”宠物商店“”,在宠物商店中可以有多种(由用户决定数量)宠物,试表示出此种关系,并要求可以根据宠物的关键字查找到相应的宠物信息。所需要的宠物信息自行设计。具体分析如下:

(1)宠物信息可以自行设计,所以可以简单设计出名字、颜色、年龄3个属性;

(2)宠物的类别很多,如猫、狗等都属于宠物,所以宠物应该是一个1标准。

(3)在宠物商店中,只要是符合了次宠物标准的就都应该可以放进宠物商店之中。

(4)宠物商店中要保存多种宠物,则肯定应该是一个宠物的对象数组,如果宠物的个数由用户决定,则应在创建宠物商店时,就分配好所能保存的宠物个数。

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 String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getColor() {
        return this.color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    public int getAge() {
        return this.age;
    }
    public void setAge(int age) {
        this.age = 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 String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getColor() {
        return this.color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    public int getAge() {
        return this.age;
    }
    public void setAge(int age) {
        this.age = 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++;
            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("金毛","金色的",3));
        ps.add(new Dog("黄狗","黑 色的",3));
        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());
            }
        }
    }
}
原文地址:https://www.cnblogs.com/lizi-shaoxiaoye/p/6730120.html