2. 请按照下列要求编写程序。
(1) 编写一个Student类,包含name和age属性,提供有参构造方法。
(2) 在Student类中,重写toString()方法,输出age和name的值。
(3) 在Student类中,重写hashCode()和equals()方法
- hashCode()的返回值是name的hash值与age的和。
- equals()判断对象的name和age是否相同,相同则返回true不同返回false。
(4)最后编写一个测试类,创建一个HashSet<Student>对象hs,向hs中添加多个Student对象,假设有两个Student对象相等,输出HashSet文章来源:https://www.toymoban.com/news/detail-516740.html
import java.util.HashSet;
import java.util.Iterator;
import java.util.Objects;
public class Student {
public String name;
public int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(name)+age;
}
}
class TestStudent{
public static void main(String[] args) {
Student stu=new Student("曹操",12);
Student stu1=new Student("刘备",19);
Student stu2=new Student("孙策",17);
Student stu3=new Student("孙斌",18);
Student stu4=new Student("孙斌",18);
HashSet<Student> hs=new HashSet<>();
hs.add(stu1);
hs.add(stu2);
hs.add(stu3);
hs.add(stu4);
hs.add(stu);
System.out.println(hs);
Iterator it=hs.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
for (Object i:hs
) {
System.out.println(i);
}
}
}
,观察是否添加成功。文章来源地址https://www.toymoban.com/news/detail-516740.html
到了这里,关于编写一个Student类,包含name和age属性,提供有参构造方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!