《程序设计实践I》
题目:Person、Student、Employee、Faculty和Staff类
实践二面向对象程序设计实践
一、实践目的
1.掌握类的定义,对象的创建。
2.掌握实现封装、继承、多态的方法,掌握各种修饰符的使用。
3.掌握将对象数组作为方法的参数和返回值。
4.掌握抽象类与接口的概念及实现,理解动态绑定机制。
5.掌握通过组合与继承,实现代码可复用。
二、实践要求
综合使用封装、继承、多态、抽象类与接口、组合及继承等面向对象知识,给出所选项目的面向对象设计与实现。
三、项目需求
所选项目名称:Person、Student、Employee、Faculty和Staff类
设计一个名为Person的类和它的两个名为Student和Employee的子类。Employee类又有子类:教员类Faculty和职员类Staff。每个人都有姓名、地址、电话号码和电子邮件地址。学生有班级状态(大一、大二、大三或大四)。将这些状态定义为常量。一个雇员有办公室,工资和受聘日期。定义一个名为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.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;
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="一年级";
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;
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);
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(){
return name+" Staff";
}
}
public class ff {
public static void main(String[] args) {
Person p=new Person ("张三","河南省平顶山","187********");
display(p);
Student s=new Student ("王宏","河南省漯河市","158********");
display(s);
Employee e=new Employee ("李四","河南省漯河市","0395112222","人事局",222.00);
display(e);
Faculty f=new Faculty ("明明","河南省商丘市","132********","办公室",345.00,1);
display(f);
Staff sta=new Staff ("红红","河南省周口市","138********","人事科",345.00,"副局长");
display(sta);
}
public static void display(Person person){
System.out.println(person);
}
}
七、使用说明与运行结果截图
运行结果截图:
八、实践总结
通过本次试验,我掌握类的定义,对象的创建。掌握实现封装、继承、多态的方法,掌握各种修饰符的使用。掌握将对象数组作为方法的参数和返回值。
掌握抽象类与接口的概念及实现,理解动态绑定机制。基本掌握通过组合与继承,实现代码可复用。在这次实践中,我查了很多资料,很好的锻炼了自己的查阅资料的能力和快速吸收新知识的能力。同时,也加深了与同学的交流,在设计过程中,我们互相帮助,共度难关,培养了很好的默契。总之,在这次课程设
计中,我学到了很多的知识,同时也感谢我的老师和同学的指导和帮助。在以后的学习当中,我会更加努力的学习好专业知识,并将所学的知识用于实践当中去,以便牢固掌握知识。