zoukankan      html  css  js  c++  java
  • 第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());
                }
            }
        }
    }
  • 相关阅读:
    脱壳实践之手动构造输入表
    脱壳实践之寻找OEP——堆栈平衡法
    脱壳实践之寻找OEP——两次内存断点法
    PE文件格式详解(八)
    PE文件格式详解(七)
    PE文件格式详解(六)
    Eclipse 安装 Maven 插件(图文解说)
    在线图片压缩后以ImageIO 流的形式 设置大小显示指定页面
    Android-studio开发 快捷键
    简明 Git 命令速查表(中文版)
  • 原文地址:https://www.cnblogs.com/yerenyuan/p/5244942.html
Copyright © 2011-2022 走看看