————————————————————————————————————————————
Person
————————————————————————————————————————————
-name: String
-address: String
-phoneNumber: String
-emailAddress: String
————————————————————————————————————————————
+Person()
+Person(name: String, address: String,
phoneNumber: String, emailAddress: String)
+toString(): String
+getName(): String
+setName(name: String): void
+getAddress(): String
+setAddress(address: String): void
+getPhoneNumber(): String
+setPhoneNumber(phoneNumber: String): void
+getEmailAddress(): String
+setEmailAddress(emailAddress: String): void
————————————————————————————————————————————
package pack1;
public class Person {
private String name; //姓名
private String address; //地址
private String phoneNumber; //电话号码
private String emailAddress; //电子邮件地址
public Person() {
}
/**带指定姓名、地址、电话号码、电子邮件地址的构造方法*/
public Person(String name, String address, String phoneNumber, String emailAddress) {
this.name = name;
this.address = address;
this.phoneNumber = phoneNumber;
this.emailAddress = emailAddress;
}
@Override /**返回姓名、地址、电话号码、电子邮件地址的字符串*/
public String toString() {
return "Name: " + name + "\nAddress: " + address + "\nPhone number: " +
phoneNumber + "\ne-mail address: " + emailAddress;
}
/**返回姓名*/
public String getName() {
return name;
}
/**设置姓名*/
public void setName(String name) {
this.name = name;
}
/**返回地址*/
public String getAddress() {
return address;
}
/**设置地址*/
public void setAddress(String address) {
this.address = address;
}
/**返回电话号码*/
public String getPhoneNumber() {
return phoneNumber;
}
/**设置电话号码*/
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
/**返回电子邮件地址*/
public String getEmailAddress() {
return emailAddress;
}
/**设置电子邮件地址*/
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}
————————————————————————————————————
Student
————————————————————————————————————
-status: int
————————————————————————————————————
+Student()
+Student(name: String, address: String,
phoneNumber: String, emailAddress:
String, status: int)
+toString(): String
+getStatus(): int
+setStatus(status: int): void
————————————————————————————————————
package pack1;
public class Student extends Person{
public static final int ONE = 1, TWO = 2, THREE = 3, FOUR = 4; //学生状态常量(大一、大二、大三、大四)
private int status; //学生状态
/**默认无参构造方法*/
public Student() {
this(null, null, null, null, ONE);
}
/**带指定姓名、地址、电话号码、电子邮件地址、状态的构造方法*/
public Student(String name, String address, String phoneNumber, String emailAddress,
int status) {
super(name, address, phoneNumber, emailAddress);
this.status = status;
}
@Override /**返回父类字符串描述、学生状态的字符串*/
public String toString() {
return super.toString() + "\nStatus: " + status;
}
/**返回状态*/
public int getStatus() {
return status;
}
/**设置状态*/
public void setStatus(int status) {
this.status = status;
}
}
——————————————————————————————————————————————
Employee
——————————————————————————————————————————————
-office: String
-salary: double
-hiredDate: Date
——————————————————————————————————————————————
+Employee()
+Employee(name: String, address: String,
phoneNumber: String, emailAddress:
String, office: String, salary: double)
+toString(): String
+getOffice(): String
+setOffice(office: String): void
+getSalary(): double
+setSalary(salary: double): void
+getHiredDate(): Date
——————————————————————————————————————————————
package pack1;
import java.util.Date;
public class Employee extends Person {
private String office; //办公室
private double salary; //工资
private Date hiredDate = new Date(); //受聘日期
public Employee() {
}
/**带指定姓名、地址、电话号码、电子邮件地址、办公室、工资的构造方法*/
public Employee(String name, String address, String phoneNumber,
String emailAddress, String office, double salary) {
super(name, address, phoneNumber, emailAddress);
this.office = office;
this.salary = salary;
}
@Override /**返回父类字符串、办公室、工资、受聘日期的字符串*/
public String toString() {
return super.toString() + "\nOffice: " + office + "\nSalary: " + salary +
"\nHired date: " + hiredDate;
}
/**返回办公室*/
public String getOffice() {
return office;
}
/**设置办公室*/
public void setOffice(String office) {
this.office = office;
}
/**返回工资*/
public double getSalary() {
return salary;
}
/**设置工资*/
public void setSalary(double salary) {
this.salary = salary;
}
/**返回受聘日期*/
public Date getHiredDate() {
return hiredDate;
}
}
——————————————————————————————————————————
Faculty
——————————————————————————————————————————
-workTime: String
-rank: String
——————————————————————————————————————————
+Faculty()
+Faculty(name: String, address: String,
phoneNumber: String, emailAddress:
String, office: String, salary:
double, workTime: String, rank: String)
+toString(): String
+getWorkTime(): String
+setWorkTime(workTime: String): void
+getRank(): String
+setRank(rank: String): void
——————————————————————————————————————————
package pack1;
public class Faculty extends Employee{
private String workTime; //办公时间
private String rank; //级别
public Faculty() {
}
/**带指定姓名、地址、电话号码、电子邮件地址、办公室、工资、办公时间、级别的构造方法*/
public Faculty(String name, String address, String phoneNumber, String emailAddress,
String office, double salary, String workTime, String rank) {
super(name, address, phoneNumber, emailAddress, office, salary);
this.workTime = workTime;
this.rank = rank;
}
@Override /**返回父类字符串、办公时间、级别的字符串*/
public String toString() {
return super.toString() + "\nWork time: " + workTime + "\nRank: " + rank;
}
/**返回办公时间*/
public String getWorkTime() {
return workTime;
}
/**设置办公时间*/
public void setWorkTime(String workTime) {
this.workTime = workTime;
}
/**返回级别*/
public String getRank() {
return rank;
}
/**设置级别*/
public void setRank(String rank) {
this.rank = rank;
}
}
————————————————————————————————————————————
Staff
————————————————————————————————————————————
-title: String
————————————————————————————————————————————
+Staff()
+Staff(name: String, address: String,
phoneNumber: String, emailAddress:
String, office: String, salary:
double, title: String)
+toString(): String
+getTitle(): String
+setTitle(title: String): void
————————————————————————————————————————————
package pack1;
public class Staff extends Employee{
private String title; //职务称号
public Staff() {
}
/**带指定姓名、地址、电话号码、电子邮件地址、办公室、工资、职务称号的构造方法*/
public Staff(String name, String address, String phoneNumber, String emailAddress,
String office, double salary, String title) {
super(name, address, phoneNumber, emailAddress, office, salary);
this.title = title;
}
@Override /**返回父类字符串、职务称号的字符串*/
public String toString() {
return super.toString() + "\nTitle: " + title;
}
/**返回职务称号*/
public String getTitle() {
return title;
}
/**设置职务称号*/
public void setTitle(String title) {
this.title = title;
}
}
package pack1;
public class TestPerson {
public static void main(String[] args) {
Person person = new Person("person", "address", "number", "email");
System.out.println(person + "\n");
Employee employee = new Employee("name", "address", "number", "email", "office",
13000);
System.out.println(employee + "\n");
Student student = new Student("name", "address", "student number", "email",
Student.ONE);
System.out.println(student + "\n");
Faculty faculty = new Faculty("faculty", "address", "123", "123.com", "office",
12399.9, "12am - 6pm", "turtor");
System.out.println(faculty + "\n");
Staff staff = new Staff("staff", "address", "phone", "1234.com", "staffOffice",
14000, "teacher");
System.out.println(staff);
}
}