收藏 分销(赏)

java实验报告7.doc

上传人:仙人****88 文档编号:12004632 上传时间:2025-08-26 格式:DOC 页数:8 大小:209.54KB 下载积分:10 金币
下载 相关 举报
java实验报告7.doc_第1页
第1页 / 共8页
java实验报告7.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
实 验 报 告 ( 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 Student{ private 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 Student{ private 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 A{ public int f(int m,int n){ if(m<n){ 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 A{ public int f(int m,int n){ int division=super.f(m,n); return (m*n)/division; } } public class sy7_1{ public 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*n<0) {System.out.println("有负数,程序退出"); System.exit(0); } System.out.printf("%d和%d的最大公约数是%d\n",m,n,a.f(m,n)); System.out.printf("%d和%d的最小公倍数是%d\n",m,n,b.f(m,n)); } } (2) 实验结果: 3.设计一个圆类Circle,具有属性:圆心坐标x和y及圆半径r,除具有设置及获得属性的方法外,还具有计算周长的方法perimeter( )和计算面积的方法area( ),再设计一个圆柱类Cylinder,Cylinder继承自Circle,增加了属性:高度h,增加了设置和获得h的方法、计算表面积的方法area( )和计算体积的方法volume( )。创建Cylinder的类对象,显示其所有属性,计算并显示其面积和体积。 (1)源程序: class Circle{ double 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 Circle{ double 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_3{ public 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关键词,在几道程序中分别进行了练习使用,也能较为熟悉地使用。 五、指导教师评语 成 绩 批阅人 日 期 7
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服