1、实验四 类和对象编程—面向对象特征 一、实验目的 1.理解封装含义; 2.掌握继承的使用; 3.掌握多态的含义及使用。 二、实验器材 计算机硬件环境:PIII 667以上计算机;软件环境:MyEclipse6.0以上。 三、实验内容 设计3个类,分别学生类Student,本科生类Undergaduate,研究生类Postgraduate,学生类包含一些基本属性,如姓名、所学课程、课程成绩等,具有一个空方法getGrade();本科生类Undergaduate与研究生类Postgraduate继承学生类Student,都覆盖了父类的getGrade()方法,用于通过分数计算成绩
2、的等级,计算方法不同,研究生的标准要比本科生的标准高一些,如下表所示。要求对属性进行适当封装,通过方法来访问。 表 课程成绩等级 本科生标准 研究生标准 80--100 优秀 90—100 优秀 70--80 良好 80—90 良好 60--70 一般 70—80 一般 50--60 及格 60—70 及格 50以下 不及格 60以下 不及格 编写测试类,在测试类里创建若干个Undergaduate与Postgraduate对象,计算他们的成绩,并输出他们的个人信息。 四、实验步骤 Student类 package .tqc; pub
3、lic class Student { private String name; private int chinese; private int math; private int english; public Student (String name,int chinese,int math,int english){ this.name = name; this.chinese = chinese; this.math = math ; this.english = english; }
4、 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getChinese() { return chinese; } public void setChinese(int chinese) { this.chinese = chinese; } public int getMath() { return math; } publ
5、ic void setMath(int math) { this.math = math; } public int getEnglish() { return english; } public void setEnglish(int english) { this.english = english; } public float pingjun(int english,int math,int chinese){ float a; a = (english+math+chinese)/3; return
6、a; } } 本科生类Undergaduate package .tqc; public class Undergaduate extends Student { public Undergaduate(String name, int chinese, int math, int english) { super(name, chinese, math, english); // TODO Auto-generated constructor stub } public void Undergradute(String name, int c
7、hinese, int math, int english) { } public float pj(int st,float bk){ float a; a = (bk+st)/2; return a; } public void benkepd(float a){ if (a>80){ System.out.println("该学生为优秀"); }else if(a>70){ System.out.println("该学生为良好"); }else if(a>5
8、9){ System.out.println("该学生为及格"); }else { System.out.println("该学生为不及格"); } } 研究生类Postgraduate package .tqc; public class Undergaduate extends Student { public Undergaduate(String name, int chinese, int math, int english) { super(name, chinese, math, english); /
9、/ TODO Auto-generated constructor stub } public void Undergradute(String name, int chinese, int math, int english) { } public float pj(int st,float bk){ float a; a = (bk+st)/2; return a; } public void benkepd(float a){ if (a>80){ System.out.print
10、ln("该学生为优秀"); }else if(a>70){ System.out.println("该学生为良好"); }else if(a>59){ System.out.println("该学生为及格"); }else { System.out.println("该学生为不及格"); } } Text类 package .tqc; public class Test { public static void main(String[] args) { Undergadua
11、te zhansan = (Undergaduate) new Undergaduate("zhangsan", 80, 89,97); int zcj=zhansan.pingjun(80, 89,97); System.out.println("学生名字"+zhansan.getName()); System.out.println(zhansan.getName()+"语文:"+zhansan.getChinese()); System.out.println(zhansan.getName()+"数学:"+zhansan.getMath());
12、 System.out.println(zhansan.getName()+"英语:"+zhansan.getEnglish()); System.out.println(zhansan.getName()+"总平均分为:"+zcj); zhansan.getGrade(zcj); Postgraduate lisi = (Postgraduate) new Postgraduate("lisi", 98,87,90); int zcj1=lisi.pingjun( 98,87,90); System.out.prin
13、tln("学生名字:"+lisi.getName()); System.out.println(lisi.getName()+"语文:"+lisi.getChinese()); System.out.println(lisi.getName()+"数学:"+lisi.getMath()); System.out.println(lisi.getName()+"英语:"+lisi.getEnglish()); System.out.println(lisi.getName()+"总平均分为:"+zcj); lisi.getGrade(zcj1); } } 运行结果 五、实验总结






