java人学生大学生类的继承,java实验报告7.doc

44cb7578e1df5412b94317daaa3307ba.gifjava实验报告7.doc

实 验 报 告( 2014 / 2015学年 第2学期)课程名称JAVA程序设计实验名称 类的继承实验时间2015年4月30日指导单位计算机学院/软件学院软件工程系指导教师周莉学生姓名班级学号学院(系)计算机软件学院专 业计算机科学与技术实验名称类的继承指导教师周莉实验类型上机实验学时2实验时间2015-4-30一、 实验目的1. 掌握类继承的概念2. 掌握派生类的定义3. 掌握方法的重新定义4. 熟悉super关键词的使用5熟悉protected关键词的使用二、实验环境(实验设备)1. 每位学生配备计算机一台2. 计算机需安装好JDK和Jcreator三、实验内容1. 在实验6已定义的学生类Student的基础上,以Student类为父类,为学生类派生出一个子类为大学生类(CollegeStudent)。CollegeStudent 类在学生类上增加一个专业(profession)数据属性;方法上增加获得专业和设置专业两个方法。并对超类中的toString( )方法进行重写,使得CollegeStudent类中的toString( )方法除了显示学生类的信息外,还要显示它的专业属性。编写测试程序的主类。在主类中创建一个Student对象和CollegeStudent对象,并显示或修改这两个对象的属性值。(1)源程序:class Studentprivate String num;private String classNum;private String name;private String sex;private int age;public Student(String num,String classNum,String name,String sex,int age)this.num=num;this.classNum=classNum;this.name=name;this.sex=sex;this.age=age;public String getNum()return num;public String getClassNum()return classNum;public String getName()return name;public String getSex()return sex;public int getAge()return age;public void setNum(String num)this.num=num;public void setClassNum(String classNum)this.classNum=classNum;public void setSex(String sex)this.sex=sex;public void setAge(int age)this.age=age;public String toString()return学号:+this.num+t班号:+this.classNum+t姓名:+this.name+t性别:+this.sex+t年龄:+this.age;class CollegeStudent extends Studentprivate String profession;public CollegeStudent(String num,String classNum,String name,String sex,int age,String profession)super(num,classNum,name,sex,age);this.profession=profession;public String getProfession()return profession;public void setProfession(String pf)profession=pf;public String toString()return super.toString()+t专业:+this.getProfession();public class StudentTest public static void main(String args)Student st=new Student(9801001,001,张三,男,20);System.out.println(st);CollegeStudent cs=new CollegeStudent(9801002,002,李四,女,18,计算机网络);System.out.println(cs);(2)实验结果:2. 编写一个类,该类有如下一个方法:public int f(int a,int b) /要求该方法返回a和b的最大公约数编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个整数的最小公倍数。要求:在重写的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回;在应用程序的主类中分别使用父类和子类创建对象,并分别调用方法f()计算两个正整数的最大公约数和最小公倍数。(1) 源程序:import java.util.Scanner;class Apublic int f(int m,int n)if(mn)int temp=m;m=n;n=temp;int r=m%n;while(r!=0)m=n;n=r;r=m%n;return n;class B extends Apublic int f(int m,int n)int division=super.f(m,n);return (m*n)/division;public class sy7_1public static void main(String args)A a=new A();B b=new B();Scanner reader=new Scanner(System.in);System.out.println(输入两个整数,程序计算出他们的最大公约数和最小公倍数);System.out.println(输入第一个整数:);int m=reader.nextInt();System.out.print(输入第二个整数:);int n=reader.nextInt();if(m*n0)System.out.println(有负数,程序退出);System.exit(0);System.out.printf(%d和%d的最大公约数是%dn,m,n,a.f(m,n);System.out.printf(%d和%d的最小公倍数是%dn,m,n,b.f(m,n);(2) 实验结果:3.设计一个圆类Circle,具有属性:圆心坐标x和y及圆半径r,除具有设置及获得属性的方法外,还具有计算周长的方法perimeter( )和计算面积的方法area( ),再设计一个圆柱类Cylinder,Cylinder继承自Circle,增加了属性:高度h,增加了设置和获得h的方法、计算表面积的方法area( )和计算体积的方法volume( )。创建Cylinder的类对象,显示其所有属性,计算并显示其面积和体积。(1)源程序:class Circledouble x;double y;double r;Circle(double x,double y,double r)this.x=x;this.y=y;this.r=r;public void serX(double x)this.x=x;public void serR(double r)this.r=r;public double gerY(double y)return y;public double gerR(double r)return r;public double area()return r*r*3.1416;public double perimeter()return 2*r*3.1416;public void show()System.out.print(x=+x+,y=+y+,Radius=+r);class Cylinder extends Circledouble h;Cylinder(double x,double y,double r,double h)super(x,y,r);this.h=h;public double getH()return h;public double volume()return super.area()*h;public class sy7_3public static void main(String args)Cylinder cylinder=new Cylinder(1,1,4,8);cylinder.show();System.out.println(.Height=+cylinder.getH();System.out.println(Area=+cylinder.area();System.out.println(Volume=+cylinder.volume();(2)实验结果:四、实验小结(包括问题和解决方法、心得体会等)本次实验中,我们主要练习编写调试了跟累继承派生有关的程序。由于课前老师已经给出了源代码,所以我们编写起来没有什么困难。通过本次实验,我基本上掌握了类继承的概念以及派生类的定义。方法的重新定义,即覆盖原方法,调用的时候要特别注意新参数的使用。对于super关键词和protected关键词,在几道程序中分别进行了练习使用,也能较为熟悉地使用。五、指导教师评语成 绩批阅人日 期8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值