• 第8章 包及访问控制权限


       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());
                }
            }
        }
    }
  • 相关阅读:
    NOIP2016 愤怒的小鸟
    LCIS code force 10D
    UVA 1398
    uva1382 Distant Galaxy
    洛谷-3930(我在洛谷上也写了题解)
    HDU-1505 City Game
    导弹拦截n logn的算法(单调性)洛谷1020
    POJ 1182 食物链
    POJ
    1202. 交换字符串中的元素
  • 原文地址:https://www.cnblogs.com/yerenyuan/p/5244942.html
Copyright © 2020-2023  润新知