用JAVA写一个程序要求 1)设计Student类,定义sid变量表示学号,重写equals()方法,判断进行比较的两个学生对象学号是否相同,相同即为同一个学生,否则不是。为了呈现程序的健壮性,比较时请加入类型判断。 2)编写测试类Example2,创建两个Student的对象Lily和Lucy,并分别调用setter方法为学号赋值,最后通过打印语句,输出这两个对象通过“==”和重写后的equals()方法比较后的结果。
时间: 2024-02-26 17:58:17 浏览: 22
好的,我来帮你写这个程序,以下是代码:
首先是Student类:
```java
public class Student {
private int sid; // 学号
public Student(int sid) {
this.sid = sid;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof Student)) {
return false;
}
Student s = (Student) obj;
return this.sid == s.getSid();
}
}
```
然后是测试类Example2:
```java
public class Example2 {
public static void main(String[] args) {
Student lily = new Student(1);
Student lucy = new Student(2);
Student lily2 = new Student(1);
System.out.println(lily == lucy); // false,因为lily和lucy是不同的对象
System.out.println(lily == lily2); // false,因为lily和lily2是不同的对象
System.out.println(lily.equals(lucy)); // false,因为学号不同
System.out.println(lily.equals(lily2)); // true,因为学号相同
}
}
```
在测试类中,我们创建了两个Student对象lily和lucy,并为它们设置了不同的学号。然后我们创建了另一个Student对象lily2,它的学号和lily是相同的。
最后,我们通过打印语句输出了这两个对象通过“==”和重写后的equals()方法比较后的结果。