(1) 编写一个Student类,包含name和age属性,并完成封装 (2) 提供Student类的无参、有参构造方法。 (3) 在Student类中,重写toString()方法,输出age和name的值。 (4) 在Student类中,重写hashCode()和equals()方法 A、 hashCode()的返回值是name的hash值与age的和。 B、 equals()判断对象的name和age是否相同,相同则返回true不同返回false。
时间: 2024-02-22 21:55:17 浏览: 73
好的,我来回答你的问题。
以下是符合你要求的Java代码:
```java
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public int hashCode() {
return name.hashCode() + age;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Student)) return false;
Student student = (Student) obj;
if (age != student.age) return false;
return name != null ? name.equals(student.name) : student.name == null;
}
}
```
这个类包含了 `name` 和 `age` 两个属性,并且实现了封装。提供了无参构造方法和有参构造方法。重写了 `toString()`、`hashCode()` 和 `equals()` 方法。其中 `hashCode()` 方法的返回值是 `name` 的哈希值与 `age` 的和,`equals()` 方法是判断对象的 `name` 和 `age` 是否相同。
阅读全文