제8장 패키지 및 액세스 제어 권한

13894 단어
1、
프로젝트의 대략적인 프레임은 다음과 같습니다.
   
코드는 다음과 같습니다.
package li.a.yun.inter;

public interface Pet {
    public String getName();
    public String getColor();
    public int getAge();
}
package li.a.yun.entity;

import li.a.yun.inter.Pet;

public class Cat implements Pet {
    private String name;
    private String color;
    private int age;
    
    public Cat(String name, String color, int age) {
        this.name = name;
        this.color = color;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
package li.a.yun.entity;

import li.a.yun.inter.Pet;

public class Dog implements Pet {
    private String name;
    private String color;
    private int age;
    
    public Dog(String name, String color, int age) {
        this.name = name;
        this.color = color;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
package li.a.yun.util;

import li.a.yun.inter.Pet;

public class PetShop {
    private Pet[] pets;
    private int foot = 0;
    
    public PetShop(int len) {
        if(len <= 0)
            throw new RuntimeException("              ");
        this.pets = new Pet[len];
    }
    
    public boolean add(Pet p) {
        boolean isAdd = false;
        if(foot != pets.length) {
            pets[foot] = p;
            foot++;
            isAdd = true;
        } else {
            throw new RuntimeException("      ,         ");
        }
        return isAdd;
    }
    
    /*
     *                   
     */
    public Pet[] search(String key) {
        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(key) != -1 ||
                    this.pets[i].getColor().indexOf(key) != -1)
                    count++;
            }
        }
        
        p = new Pet[count];
        
        for(int i = 0, f = 0; i < this.pets.length; i++) {
            if(this.pets[i] != null) {
                if(this.pets[i].getName().indexOf(key) != -1 ||
                    this.pets[i].getColor().indexOf(key) != -1) {
                    p[f] = this.pets[i];
                    f++;
                }
            }
        }
        
        return p;
    }
}
package li.a.yun.test;

import li.a.yun.entity.Cat;
import li.a.yun.entity.Dog;
import li.a.yun.inter.Pet;
import li.a.yun.util.PetShop;

public class Test {

    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));
        //System.out.println(ps.add(new Dog("  ", "   ", 2)));
        print(ps.search(" "));
    }
    private static void print(Pet[] pets) {
        for(int i = 0; i < pets.length; i++) {
            if(pets[i] != null) {
                System.out.println(pets[i].getName()+","+pets[i].getColor()+","+pets[i].getAge());
            }
        }
    }
}

좋은 웹페이지 즐겨찾기