person.student
题目: Person、Student、Employee、Faculty和Staff类
实践二 面向对象程序设计实践 一、实践目的
1.掌握类的定义,对象的创建。
2.掌握实现封装、继承、多态的方法,掌握各种修饰符的使用。
3.掌握将对象数组作为方法的参数和返回值。
4.掌握抽象类与接口的概念及实现,理解动态绑定机制。
5.掌握通过组合与继承,实现代码可复用。
二、实践要求
综合使用封装、继承、多态、抽象类与接口、组合及继承等面向对象知识,给出所选项目的面向对象设计与实现。 三、项目需求
所选项目名称:Person、Student、Employee、Faculty和Staff类
设计一个名为Person的类和它的两个名为Student和Employee的子类。Employee类又有子类:教员类Faculty和职员类Staff。每个人都有姓名、地址、电话号码和电子邮
2
件地址。学生有班级状态(大一、大二、大三或大四)。将这些状态定义为常量。一个雇员有办公室,工资和受聘日期。定义一个名为Mydate的类,包括数据域:year、month和day。教员类有办公时间和级别。职员有职务称号。覆盖每个类中的toString方法,显示相应的类名和人名。
五、核心算法详细设计
对于每个类的主要方法,给出其详细设计的核心算法,如:
1、person类
里面包含成员变量name,address,telephoto,以及构造方法person(String,String,String),以及方法toString全部都是string型变量。
2.student类
里面包含class1.class2,class3,class4都是String型变量以及构造方法student(String,String,String),和方法toString.
3
3.employee类
包含成员变量office是string型变量,成员变量salary是double型变量,构造方法employee(String,String,String)以及方法tostring是String型变量。
4.faculty类
成员变量有level是int整型变量,构造方法faculy(String,String,String),方法tostring是String型变量。
5.staff类
里面包括成员变量position是String型变量,构造方法staff(String,String,String),方法tostring是String型变量。
6.ff类
包含主函数main以及display,返回值都是void。
六、完整源码
完整源码:给出完整的源代码。如:
class Person{
String name;
4
String address;
String telphone;
public Person(String n,String a,String t){
name=n;
address=a;
telphone=t;
}
public String toString(){
return name+\" Person\";
}
}
class Student extends Person{
final String class1=\"一年级\";
5
final String class2=\"二年级\";
final String class3=\"三年级\";
final String class4=\"四年级\";
public Student(String n,String a,String t){
super(n,a,t);
}
public String toString(){
return name+\" Student\";
}
}
class Employee extends Person{
String office;
double salary;
6
public Employee(String n,String a,String t,String o,double s){
super(n,a,t);
office=o;
salary=s;
}
public String toString(){
return name+\" Employee\";
}
}
class Faculty extends Employee{
int Level;
public Faculty(String n,String a,String t,String o,double w,int level){
super(n,a,t,o,w);
7
Level=level;
}
public String toString(){
return name+\" Faculty\";
}
}
class Staff extends Employee{
String position;
public Staff(String n,String a,String t,String o,double w,String p){
super(n,a,t,o,w);
position=p;
}
public String toString(){
8
return name+\" Staff\";
}
}
public class ff {
public static void main(String[] args) {
Person p=new Person (\"张三\河南省平顶山\
display(p);
Student s=new Student (\"王宏\河南省漯河市\
display(s);
Employee e=new Employee (\"李四\河南省漯河市\人事局\
display(e);
Faculty f=new Faculty (\"明明\河南省商丘市\办公室\
9
display(f);
Staff sta=new Staff (\"红红\河南省周口市\人事科\副局长\");
display(sta);
}
public static void display(Person person){
System.out.println(person);
}
}
七、使用说明与运行结果截图
运行结果截图:
10
八、实践总结
通过本次试验,我掌握类的定义,对象的创建。掌握实现封装、继承、多态的方法,掌握各种修饰符的使用。掌握将对象数组作为方法的参数和返回值。
掌握抽象类与接口的概念及实现,理解动态绑定机制。基本掌握通过组合与继承,实
11
现代码可复用。在这次实践中,我查了很多资料,很好的锻炼了自己的查阅资料的能力和快速吸收新知识的能力。同时,也加深了与同学的交流,在设计过程中,我们互相帮助,共度难关,培养了很好的默契。总之,在这次课程设计中,我学到了很多的知识,同时也感谢我的老师和同学的指导和帮助。在以后的学习当中,我会更加努力的学习好专业知识,并将所学的知识用于实践当中去,以便牢固掌握知识。
12
因篇幅问题不能全部显示,请点此查看更多更全内容