Java继承与多态实验报告

更新时间:2023-10-14 13:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西 安 邮 电 大 学

(计算机学院)

课内实验报告

实验名称: 继承与多态

专业名称: 计算机科学与技术 班 级: 计科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+\ } }

(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.name+\ } }

(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 (a>b) return a+\else

return b+\}

public String sort(int a, int b, int c) { int swap; if (a

c=swap; }

return a+\}

public String sort(int arr[]) { String s=\int swap;

for (int i=0; iarr[j+1]) { swap=arr[j]; arr[j]=arr[j+1]; arr[j+1]=swap; }

for (int i=0; i

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(\两个数的排序结果:\g.drawString(\三个数的排序结果:\g.drawString(\数组的排序结果:\} }

(3)编译并运行程序

(4)编写Sort类文件的页面文件sort.html

(三) 构造方法的重载

(1)编写构造方法User 的重载程序文件RunDemo,源代码如下。

class User{

private String userName, password;

【代码1】 //定义一个无参构造方法的头部 {

System.out.println(\全部为空!\}

【代码2】 //定义一个构造方法,参数为name,用name初始化成员变量userName 【代码3】 //定义一个构造方法的头部,参数为name和pwd {

【代码4】 // 调用上个构造方法初始化userName 【代码5】 //初始化成员变量password check(); }

void check() { String s=null; if (userName!=null) s=\用户名:\else

s=\用户名不能为空!\if (password!=\s=s+\口令无效!\else

s=s+\口令:********\System.out.println(s); } }

public class RunDemo {

public static void main(String[] args) { new User(); new User(\刘新宇\new User(null,\邵丽萍\new User(\张驰\} }

(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】//画一条直线

本文来源:https://www.bwwdw.com/article/3pmf.html

Top