?? 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 + -