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