西农大 Java实习 实验六 泛型与集合框架 习题一

任务一:用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());
		}
	}
}

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值