在pta中用Java实现Java每个对象都继承自Object都有equals、toString等方法。现在需要定义PersonOverride类并覆盖其toString与equals方法。1 新建PersonOverride类a 属性:String name、int age、boolean gender所有的变量必须为私有private。b 有参构造方法参数为name age genderc 无参
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,这样可以避免手动调整数组大小的麻烦
原文地址: https://www.cveoy.top/t/topic/hDDN 著作权归作者所有。请勿转载和采集!