请按照下列要求编写程序。 (1) 编写一个Student类,包含name和age属性,提供有参构造方法。 (2) 在Student类中,重写toString()方法,输出age和name的值。 (3) 在Student类中,重写hashCode()和equals()方法 a.hashCode()的返回值是name的hash值与age的和。b.equals()判断对象的name和age是否相同,相同则返回true不同返回false。 (4)最后编写一个测试类,创建一个HashSet<Student>对象hs,向hs中添加多个Student对象,假设有两个Student对象相等,输出HashSet,观察是否添加成功。2. 请按照下列提示编写一个泛型接口以及其实现类。 提示: (1)创建一个泛型接口Generic<T>,并创建一个抽象方法get(T t); (2)创建一个实现类GenericImpl<T>,空实现get(T t)方法。
时间: 2024-02-09 15:11:29 浏览: 28
好的,这是您的第一个问题。下面是我的回答:
首先,关于要求(1)和(2),可以按照以下方式实现:
```java
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Name: " + name + ", Age: " + age;
}
@Override
public int hashCode() {
return name.hashCode() + age;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Student other = (Student) obj;
if (!Objects.equals(this.name, other.name)) {
return false;
}
if (this.age != other.age) {
return false;
}
return true;
}
}
```
在这个实现中,重写了`toString()`方法以便输出对象的属性值,重写了`hashCode()`和`equals()`方法以便判断两个对象是否相等。
关于要求(3),我已经在上面的代码中实现了。
最后,关于要求(4),可以按照以下方式实现:
```java
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
Student s1 = new Student("Tom", 18);
Student s2 = new Student("Tom", 18);
Student s3 = new Student("Jerry", 20);
HashSet<Student> hs = new HashSet<>();
hs.add(s1);
hs.add(s2);
hs.add(s3);
System.out.println(hs);
}
}
```
在这里,我创建了三个`Student`对象并将它们添加到一个`HashSet`中。其中,`s1`和`s2`的属性值相同,所以它们是相等的对象,但是`s3`的属性值不同,所以它是一个不同的对象。如果`HashSet`添加成功,那么输出结果应该只包含`s1`和`s3`两个对象。
相关推荐
![text/x-c++](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)