




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选文库西 安 邮 电 大 学(计算机学院)课内实验报告实验名称: 继承与多态 专业名称: 计算机科学与技术班 级: 计科1405班 学生姓名: 高宏伟 学 号: 04141152指导教师: 刘霞林实验日期: 2016.10.13一、实验目的 通过编程和上机实验理解 Java 语言的继承和多态特性,掌握变量的隐藏、方法的覆盖、重载,掌握抽象类和接口的使用。二、实验要求 1.编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。 2.编写体现类的多态性(成员方法重载)的程序。3.编写体现类的多态性(构造方法重载)的程序。4.编写使用接口的程序。三、实验内容 (一)类的继承1.创建公共类Student. (1)编写程序文件 Student.java,源代码如下: public class Student protectedString name; /具有保护修饰符的成员变量 protected int number; void setData(String m,int h) /设置数据的方法 name =m; number= h; public void print() /输出数据的方法 System.out.println(name+, +number); (2)编译 Student.java,产生类文件Student.class。 2创建继承的类Undergraduate(1)程序功能:通过 Student 类产生子类 undergraduate,其不仅具有父类的成员变量 name(姓名)、number(学号),还定义了新成员变量academy(学院)、department(系)。在程序中调用父类的 print 方法。(2) 编写 Undergraduate 程序:class Undergraduate extends Student 【代码1】 /定义成员变量academy 【代码2】 /定义成员变量department public static void main(String args) 【代码3】 /创建一个学生对象s 【代码4】 /用父类的setData方法初始化对象s【代码5】 /对象s调用print方法 【代码6】 /创建一个大学生对象u 【代码7】/调用父类的成员方法setData初始化对象u 【代码8】 /设置对象u的成员变量academy【代码9】 /设置对象u的成员变量department System.out.print(+, +u.number+, +u.academy+, +u.department); (3)编译并运行程序注意:公共类 Student 与undergraduate 类要在同一文件夹(路径)内。 (二)方法的重载 (1)程序功能:对不同的数进行排序输出。在IntSort 类中定义3 个同名的方法sort。 (2)编写Sort.java 文件,源代码如下。import java.awt.Graphics;import java.applet.Applet;class IntSort public String sort(int a, int b) if (ab)return a+b;elsereturn b+a;public String sort(int a, int b, int c) int swap;if (ab) swap=a;a=b;b=swap;if (ac) swap=a;a=c;c=swap;54if (bc) swap=b;b=c;c=swap;return a+b+c;public String sort(int arr) String s=;int swap;for (int i=0; iarr.length; i+)for (int j=0; jarrj+1) swap=arrj;arrj=arrj+1;arrj+1=swap;for (int i=0; iarr.length; i+)s=s+arri+;return s;public class Sort extends Applet IntSort s=new IntSort();public void paint(Graphics g) int a=30, b=12, c=40;int arr=34,8,12,67,44,98,52,23,16,16;g.drawString(两个数的排序结果:+s.sort(a,b),30,30);g.drawString(三个数的排序结果:+s.sort(a,b,c),30,60);g.drawString(数组的排序结果:+s.sort(arr),30,90);(3)编译并运行程序(4)编写Sort类文件的页面文件sort.html(三) 构造方法的重载 (1)编写构造方法User 的重载程序文件RunDemo,源代码如下。class Userprivate String userName, password;【代码1】 /定义一个无参构造方法的头部System.out.println(全部为空!);【代码2】 /定义一个构造方法,参数为name,用name初始化成员变量userName【代码3】 /定义一个构造方法的头部,参数为name和pwd【代码4】 / 调用上个构造方法初始化userName【代码5】 /初始化成员变量passwordcheck();void check() String s=null;if (userName!=null)s=用户名:+userName;elses=用户名不能为空!;if (password!=12345678)s=s+ 口令无效!;elses=s+ 口令:*;System.out.println(s);public class RunDemo public static void main(String args) new User();new User(刘新宇);new User(null,邵丽萍);new User(张驰,12345678); (2)编译并运行程序(四)实现 MouseListener 和 MouseMotionListener 两个接口 (1)编写实现接口的程序文件 Interface.java,源代码如下。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; 【代码1】 /定义一个实现接口MouseListener, MouseMotionListener 并继承Applet的一个类的头部,类名为Interface int x1, y1, x2, y2; public void init() addMouseListener(this); addMouseMotionListener(this); public void paint(Graphics g) 【代码2】/画一条直线 public void mousePressed(MouseEvent e) / 记录起点坐标 x1=e.getX(); y1=e.getY(); public void mouseClicked(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseMoved(MouseEvent e) public void mouseDragged(MouseEvent e) / 记录终点坐标 x2=e.getX(); y2=e.getY(); repaint(); 编译 Interface.java 文件。 编写 Interface.html 文件,源代码如下。(5)在浏览器中打开 Interface.html 文件,在窗口中拖动鼠标可以随意画出一条线四、运行结果五、思考题1 使用变量之前是不是都要先声明变量。使用变量之前是不是都要先赋值,为什么?使用之前必须先声明,因为声明了,运行时计算机才能划分计算机空间给他。根据变量不同,或者在堆里,或者在栈里。但是没有声明的话,连存在的空间都没有,那么读写也就无从谈起。不是必须先赋值,因为会自动赋默认值。2 什么是构造方法。构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。3 类的继承和多态有什么作用,在使用上应该注意什么问题。继承就是子类继承父类,使子类具有父类的各种属性和方法,好处就是避免多余的代码出现,例如,项目中常常要用到的数据库的开启关闭,就可以单独写一个父类,其他类要用的话可以去继承。多态就是一个接口,使用不同的实例去执行不同的操作,好处就是增强程序的可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门面合同协议书
- 产业合同协议书
- 奶茶店员工合同协议书
- 药物学应用试题及答案
- 托管转让协议书 合同
- 地推合伙人合同协议书
- 合同协议书订制
- 美食合同协议书
- 二七区合同协议书模板
- 搞卫生合同协议书
- 通信施工培训课件
- 球团焙烧工(高级)技能鉴定备考试题库-上(单选、多选题)
- 专题18 圆锥曲线(椭圆、双曲线、抛物线)小题综合(学生卷)-2025年高考之近十年真题数学分项汇编
- 知识宝库中的宝藏知识产权的投资潜力和实践路径探索
- 产业园合作框架协议书范本
- 《电泳涂装工艺》课件
- 2025年度咖啡厅员工培训服务合同范本
- 2025年苏州工业园区服务外包职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 基于深度学习的图像修复算法研究
- 隐私与保密信息管理制度
- 《隧道防火保护板系统技术规程》
评论
0/150
提交评论