📄 test.java
字号:
package exercise;
import java.util.*;
/*
要求:实现合理的封装
*/
class Person
{
private int id; //编号
private String name; //姓名
private int age; //年龄
public Person(){}
public Person(int id, String name, int age){
this.id = id;
this.name = name;
this.age = age;
}
public void setId(int id){
this.id = id;
}
public int getId(){
return id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public boolean equals(Object o){
Person p = (Person)o;
if(id==p.id)
return true;
else
return false;
}
public String toString(){
return "--------------------\nId:" + id + "\nName:" + name + "\nAge:" + age;
}
public int hashCode(){
return id;
}
}
/*
要求:实现合理的封装
*/
class Student extends Person
{
private String grade; //年级
public Student(){}
public Student(int id, String name, int age, String grade){
super(id, name, age);
this.grade = grade;
}
public void setGrade(String grade){
this.grade = grade;
}
public String getGrade(){
return grade;
}
public String toString(){
return super.toString() + "\nGrade:" + grade;
}
};
/*
要求:实现合理的封装
*/
class Teacher extends Person
{
private String course; //课程
};
/*
要求:将所有方法按照要求实现功能,具体功能性方法查阅文档
*/
class Action
{
//存放所有的对象(Person, Student, Teacher)
private ArrayList data = new ArrayList();
//增加记录
public void addPerson(Person p){
data.add(p);
}
//删除记录(删除成功返回true,否则返回false)
public boolean delPerson(Person p){
return data.remove(p);
}
//修改记录(修改成功返回true,否则返回false)
public boolean updatePerson(Person p){
int index = data.indexOf(p);
if(index!=-1){
data.set(index, p);
return true;
}else
return false;
}
//查询记录(查询成功返回查询的结果,否则返回null)
//根据id查询,测试中保证id唯一性
public Person getPerson(int id){
Iterator it = data.iterator();
boolean flag = false;
Person p = null;
while(it.hasNext()){
p = (Person)it.next();
if(p.getId()==id){
flag = true;
break;
}
}
if(flag)
return p;
else
return null;
}
//查询记录(返回查询到的所有信息,放入ArrayList中返回)
//根据name查询,name可能重复
public ArrayList getPerson(String name){
//存放需要返回的Person对象
ArrayList temp = new ArrayList();
Iterator it = data.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
if(p.getName().equals(name))
temp.add(p);
}
return temp;
}
//查询记录(查询所有的Person对象,不包括Student和Teacher)
public ArrayList getAllPerson(){
ArrayList temp = new ArrayList();
Iterator it = data.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
if(isPerson(p))
temp.add(p);
}
return temp;
}
//查询记录(查询所有的Student对象)
public ArrayList getAllStudent(){
return null;
}
//查询记录(查询所有的Teacher对象)
public ArrayList getAllTeacher(){
return null;
}
//查询记录数(不包括子类)
public int getPersonNum(){
return 0;
}
//查询记录数
public int getStudentNum(){
int num = 0;
Iterator it = data.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
if(isStudent(p))
num++;
}
return num;
}
//查询记录数
public int getTeacherNum(){
return 0;
}
//内部使用的工具方法,private权限,判断是否是Person对象、Student对象、Teacher对象
private boolean isPerson(Person p){
return !(p instanceof Student) && !(p instanceof Teacher);
}
private boolean isStudent(Person p){
return p instanceof Student;
}
private boolean isTeacher(Person p){
return p instanceof Teacher;
}
}
//测试类
public class Test
{
public static void main(String[] args){
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -