标签:修饰符 定义 应用 class linux system xtend www 基类
实验目的:1. 理解继承的概念,掌握如何定义一个类的子类,掌握成员变量的隐藏和方法的覆盖,掌握this和super关键字的使用。2. 掌握访问修饰符的含义和使用。
来源博客:http://www.cnblogs.com/xiaobo-Linux/ |
|||
一、实验内容: 题目1 实验题目1:假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。根据上述要求,请完成以下Java类的设计:(1)设计一个基类Student描述学生的共同特征。(2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。(3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。(4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。编写一个Java Application程序,创建Student类,UnderGraduate类,Graduate类,具体参照代码如下:(填写缺少的代码部分)package pdsu; //定义一个pdsu包名 class Student{ private String name; private int classA,classB,classC; public Student(String name,int classA,int classB,int classC){ this.name=name;//赋初值 this.classA=classA; this.classB=classB; this.classC=classC; } public String getName(){ return name; } public int getAverage(){ return (classA+classB+classC)/3; } } class UnderGraduate extends Student{// 将UnderGraduate定义为Student的子类 public UnderGraduate(String name,int classA,int classB,int classC){ super(name,classA,classB,classC); } public void isPass(){ if(super.getAverage()>=60)//找到本科生三门科平均成绩>=60分的 System.out.println("本科生"+getName()+"的三科平均分为:"+getAverage()+",可以拿到学士学位。"); else System.out.println("本科生"+getName()+"的三科平均分为:"+getAverage()+",不能拿到学士学位。"); } } class Graduate extends Student{ public Graduate(String name,int classA,int classB,int classC){ super(name,classA,classB,classC); } public void isPass(){ if(getAverage()>=80) System.out.println("研究生姓名"+super.getName()+"平均分"+super.getAverage());//将可以拿到士学位的研究生姓名,三科平均分输出。 else System.out.println("研究生"+getName()+"的三科平均分为:"+getAverage()+",不能拿到硕士学位。"); } } public class StudentDemo{ public static void main(String[] args){ UnderGraduate s1=new UnderGraduate("Tom",55,75,81); Graduate s2=new Graduate("Mary",72,81,68); s1.isPass();//找出能拿到学士学位的学生姓名,三科平均成绩。 s2.isPass();//找出能拿到硕士学位的学生姓名,三科平均成绩。 } } 运行结果: 本科生Tom的三科平均分为:70,可以拿到学士学位。 研究生Mary的三科平均分为:73,不能拿到硕士学位。 题目二 实验题目2:理解类的继承。(1)定义一个表示长方形的类Rectangle,其中包含两个private 的double型的成员变量length和width分别表示长方形的长和宽,定义一个有参数的构造方法Rectangle(double length, double width),在其中为长方形对象初始化,定义一个无参数的构造方法,在其中调用有参数的构造方法,使创建的对象的长和宽都为0。再定义用来求长方形周长的方法perimeter()和求面积的方法area()。(2)定义一个长方体类Cuboid,使其继承Rectangle类,其中包含一个表示高的double型成员变量height;定义一个构造方法Cuboid(double length, double width, double height);再定义一个求长方体表面积的方法area(double height)和求体积的方法volume()。(3)编写一个名为CuboidTest.java的应用程序,求一个长、宽和高分别为10、5、2的长方体的体积。class Rectangle{ private double length; private double width; Rectangle(double length,double width){ this.length=length; this.width=width; } Rectangle(){ this(0,0); } public void perimeter() { System.out.println("周长是"+this.length*2+this.width*2); } public void area() { System.out.println("面积是"+this.length*this.width); } } class Cuboid extends Rectangle{ double height; double length; double width; Cuboid(double length,double width,double height){ this.length=length; this.width=width; this.height=height; } public void area(double height) { System.out.print("表面积是"+this.length*this.width*4+this.width*height*2); } public void volume() { System.out.println("体积是"+this.length*this.width*this.height); }
} public class CuboidTest { public static void main(String[] args) { Cuboid c = new Cuboid(10,5, 2); c.volume(); } } 运行结果 体积是100.0 题目三 实验题目3:学生吃饭(1)构建人物类并实现eat方法(2)构建学生类,其为final,不允许被继承,继承人物类并实现eat方法(3)在main中创建学生类实例并调用eat方法class Person{ public void eat() {
} } final class Student extends Person{
} public class test { public static void main(String[] args) { Student st = new Student(); st.eat(); } }
|
|||
来源博客:http://www.cnblogs.com/xiaobo-Linux/ |
标签:修饰符 定义 应用 class linux system xtend www 基类
原文地址:http://www.cnblogs.com/xiaobo-Linux/p/7530707.html