import java.util.ArrayList;
import java.util.Arrays;

class PersonOverride {
    private String name;
    private int age;
    private boolean gender;

    public PersonOverride(String name, int age, boolean gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public PersonOverride() {
        this("default", 1, true);
    }

    @Override
    public String toString() {
        return name + "-" + age + "-" + gender;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        PersonOverride other = (PersonOverride) obj;
        return age == other.age && gender == other.gender && name.equals(other.name);
    }
}

public class Main {
    public static void main(String[] args) {
        ArrayList<PersonOverride> persons1 = new ArrayList<>();
        ArrayList<PersonOverride> persons2 = new ArrayList<>();

        int n1 = 3; // 输入n1
        for (int i = 0; i < n1; i++) {
            persons1.add(new PersonOverride());
        }

        int n2 = 2; // 输入n2
        for (int i = 0; i < n2; i++) {
            String name = "John"; // 输入name
            int age = 20; // 输入age
            boolean gender = true; // 输入gender

            PersonOverride person = new PersonOverride(name, age, gender);

            boolean exists = false;
            for (PersonOverride p : persons2) {
                if (p.equals(person)) {
                    exists = true;
                    break;
                }
            }

            if (!exists) {
                persons2.add(person);
            }
        }

        for (PersonOverride person : persons1) {
            System.out.println(person);
        }

        for (PersonOverride person : persons2) {
            System.out.println(person);
        }

        System.out.println("Number of objects in persons2: " + persons2.size());

        System.out.println(Arrays.toString(PersonOverride.class.getConstructors()));
    }
}

提示:使用ArrayList代替数组可以简化代码,ArrayList可以动态调整大小,不需要指定数组的大小。在本例中,我们使用ArrayList来存储persons1和persons2,这样可以避免手动调整数组大小的麻烦

在pta中用Java实现Java每个对象都继承自Object都有equals、toString等方法。现在需要定义PersonOverride类并覆盖其toString与equals方法。1 新建PersonOverride类a 属性:String name、int age、boolean gender所有的变量必须为私有private。b 有参构造方法参数为name age genderc 无参

原文地址: https://www.cveoy.top/t/topic/hDDN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录