码迷,mamicode.com
首页 > 编程语言 > 详细

Java实验4- 继承

时间:2017-09-16 13:23:51      阅读:690      评论:0      收藏:0      [点我收藏+]

标签:修饰符   定义   应用   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/

Java实验4- 继承

标签:修饰符   定义   应用   class   linux   system   xtend   www   基类   

原文地址:http://www.cnblogs.com/xiaobo-Linux/p/7530707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!