任务一:用LinkedList存放对象
1. 利用面向对象的思想,创建以下类:
- Person类,包含Person的姓名和身份证号码,覆盖Object类的toString()方法,显示“姓名:XXX 身份证号:XXX”。
- Student类,继承Person类,包含学生的语文、数学、英文课的成绩,并覆盖父类的toString()方法,显示“姓名:XXX 身份证号:XXX 语文:XXX 数学:XXX 英文:XXX”。
- Teacher类,继承Person类,包含教师的工资。并覆盖父类的toString()方法,显示“姓名:XXX 身份证号:XXX 工资:XXX”。
2. 分别为以上三个类创建对象:
Person对象 | Student对象 | Teacher对象 |
姓名:张三 | 姓名:李四 | 姓名:王五 |
身份证号:12310001 | 身份证号:12320002 | 身份证号:12330003 |
语文: 89 | 工资:4000 | |
数学: 93 | ||
英文: 94 |
3. 将这三个对象存放在一个LinkedList对象中:
LinkedList<Person> list=new LinkedList<Person>();
4. 运行示例:
姓名:张三 身份证号:12310000 姓名:李四 身份证号:12310000 语文:89 数学93 英语94 姓名:王五 身份证号:12330000 工资:40000.0 |
5. 练习使用LinkedList的其他方法。将自己的信息添加到链表的开头,以及结尾,然后再删除自己的信息。
返回类型 | 方法名称 | 描述 |
void | addFirst() | 将指定元素插入此列表的开头 |
void | addLast() | 将指定元素添加到此列表的结尾 |
E | removeFirst() | 移除并返回此列表的第一个元素 |
E | removeLast() | 移除并返回此列表的最后一个元素 |
boolean | add(Object o) | 将指定的元素添加到列表中 |
package first;
import java.util.Objects;
public class Person {
String name;
String ID;
@Override
public int hashCode() {
return Objects.hash(ID, name);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
return Objects.equals(ID, other.ID) && Objects.equals(name, other.name);
}
public Person(String name, String iD) {
super();
this.name = name;
ID = iD;
}
@Override
public String toString() {
return "姓名:" + name + "身份证号:" + ID;
}
}
package first;
public class Student extends Person{
int Chinese;
int Math;
int English;
public Student(String name, String iD, int chinese, int math, int english) {
super(name, iD);
Chinese = chinese;
Math = math;
English = english;
}
@Override
public String toString() {
return "姓名:" + name + "身份证号:" + ID + " 语文:" + Chinese+
" 数学:" + Math + " 英语:" + English;
}
}
package first;
public class Teacher extends Person{
int salary;
public Teacher(String name, String iD, int salary) {
super(name, iD);
this.salary = salary;
}
@Override
public String toString() {
return "姓名:" + name + "身份证号:" + ID + " 薪资:" + (double)salary;
}
}
package first;
import java.util.Iterator;
import java.util.LinkedList;
public class test1 {
public static void main(String[] args) {
LinkedList<Person> list = new LinkedList<Person>();
Person p=new Person("张三 ","12310000 ");
Person s=new Student("李四 ","12320000 ",89,93,94);
Person t=new Teacher("王五 ","12330000 ",4000);
Person s2=new Student("周大儿 ","2020013158 ",88,96,69);
list.add(p);
list.add(s);
list.add(t);
list.addFirst(s2);
for (Person p2 : list) {
System.out.println(p2.toString());
}
Person p3 = list.removeFirst();
System.out.println();
System.out.println(p3.toString());
System.out.println();
list.addLast(s2);
for (Person p2 : list) {
System.out.println(p2.toString());
}
Person p4 = list.removeLast();
System.out.println();
System.out.println(p4.toString());
System.out.println();
Iterator it = list.iterator();
while (it.hasNext()) {
Person person = (Person) it.next();
System.out.println(person.toString());
}
}
}