半片橘子 2023-05-15 18:17 采纳率: 92.9%
浏览 42
已结题

考试复习资料,代码的编写

img

img


代码的编写,作为考试复习资料,希望大家帮帮忙 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

  • 写回答

2条回答 默认 最新

  • Treabhar 2023-05-15 18:26
    关注

    来自NewBing和LP的编写:
    以下是Person类的Java代码实现:

    public class Person {
        private String name;
        private int age;
    
        public Person() {
            this.name = "";
            this.age = 0;
        }
    
        /**
         * 获取人名
         *
         * @return 人名
         */
        public String getName() {
            return name;
        }
    
        /**
         * 设置人名
         *
         * @param name 人名
         * @throws IllegalArgumentException 如果人名为空字符串
         */
        public void setName(String name) {
            if (name.isEmpty()) {
                throw new IllegalArgumentException("人名不能为空!");
            }
            this.name = name;
        }
    
        /**
         * 获取年龄
         *
         * @return 年龄
         */
        public int getAge() {
            return age;
        }
    
        /**
         * 设置年龄
         *
         * @param age 年龄
         * @throws IllegalArgumentException 如果年龄小于0或大于200
         */
        public void setAge(int age) {
            if (age < 0 || age > 200) {
                throw new IllegalArgumentException("年龄必须在0到200之间!");
            }
            this.age = age;
        }
    
        /**
         * 判断当前Person对象和传入的Person对象的人名是否相同
         *
         * @param person 要比较的Person对象
         * @return 如果人名相同,返回true;否则返回false
         */
        public boolean hasSameName(Person person) {
            return this.name.equals(person.getName());
        }
    
        /**
         * 判断当前Person对象和传入的Person对象的年龄是否相同
         *
         * @param person 要比较的Person对象
         * @return 如果年龄相同,返回true;否则返回false
         */
        public boolean hasSameAge(Person person) {
            return this.age == person.getAge();
        }
    
        /**
         * 判断当前Person对象的年龄是否大于传入的Person对象的年龄
         *
         * @param person 要比较的Person对象
         * @return 如果当前Person对象的年龄大于传入的Person对象的年龄,返回true;否则返回false
         */
        public boolean isOlderThan(Person person) {
            return this.age > person.getAge();
        }
    
        /**
         * 按指定格式显示人名和年龄
         */
        public void writeOutput() {
            System.out.println("人名:" + name + " 年龄:" + age);
        }
    }
    

    下面是Person数据库类的Java代码实现:

    public class PersonDatabase {
        private Person[] data;
    
        /**
         * 初始化Person数据库
         */
        public void initData() {
            data = new Person[6];
            data[0] = new Person();
            data[0].setName("小黑");
            data[0].setAge(19);
    
            data[1] = new Person();
            data[1].setName("马克");
            data[1].setAge(20);
    
            data[2] = new Person();
            data[2].setName("丽丽");
            data[2].setAge(21);
    
            data[3] = new Person();
            data[3].setName("美美");
            data[3].setAge(19);
    
            data[4] = new Person();
            data[4].setName("小明");
            data[4].setAge(18);
    
        data[5] = new Person();
        data[5].setName("你的名字");
        data[5].setAge(20);
    }
    
    /**
     * 显示数据库里的数据
     */
    public void writeOutput() {
        if (data == null || data.length == 0) {
            System.out.println("数据库为空");
            return;
        }
    
        for (int i = 0; i < data.length; i++) {
            System.out.println((i + 1) + ":人名:" + data[i].getName() + "  年龄:" + data[i].getAge());
        }
    }
    
    /**
     * 根据人名查找Person对象并返回其年龄
     *
     * @param name 要查找的人名
     * @return 找到的Person对象的年龄,如果找不到则返回-1
     */
    public int findAgeByName(String name) {
        if (data == null) {
            return -1;
        }
    
        for (Person person : data) {
            if (person.getName().equals(name)) {
                return person.getAge();
            }
        }
    
        return -1;
    }
    
    /**
     * 对数据库中的数据按年龄从小到大进行冒泡排序
     */
    public void bubbleSort() {
        if (data == null || data.length == 0) {
            return;
        }
    
        for (int i = 0; i < data.length - 1; i++) {
            for (int j = 0; j < data.length - 1 - i; j++) {
                if (data[j].getAge() > data[j + 1].getAge()) {
                    // 交换两个元素的位置
                    Person temp = data[j];
                    data[j] = data[j + 1];
                    data[j + 1] = temp;
                }
            }
        }
    }
    }
    

    PersonTest类的main方法中,你可以测试PersonPersonDatabase类的每个公开方法。例如:

    public class PersonTest {
        public static void main(String[] args) {
            // 测试Person类
            Person person1 = new Person();
            person1.setName("John");
            person1.setAge(30);
    
            Person person2 = new Person();
            person2.setName("Jane");
            person2.setAge(25);
    
            System.out.println("Person 1与Person 2的人名是否相同:" + person1.hasSameName(person2));
            System.out.println("Person 1与Person 2的年龄是否相同:" + person1.hasSameAge(person2));
            System.out.println("Person 1的年龄是否大于Person 2的年龄:" + person1.isOlderThan(person2));
            person1.writeOutput();
    
            // 测试PersonDatabase类
            PersonDatabase database = new PersonDatabase();
            database.initData();
            database.writeOutput();
            int age = database.findAgeByName("小黑");
            System.out.println("找到的年龄:" + age);
            database.bubbleSort();
            database.writeOutput();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日
  • 创建了问题 5月15日