1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java实验报告4继承与多态_Java继承与多态实验报告

java实验报告4继承与多态_Java继承与多态实验报告

时间:2019-08-02 03:39:28

相关推荐

java实验报告4继承与多态_Java继承与多态实验报告

西 西 安 安

邮 邮 电 大 学 (计算机学院)

课内实验报告 实验名称:

态 继承与多态 ﻩ ﻩ

专业名称:

计算机科学与技术 班 班

级:

计科 1405 班

学生姓名:

高宏伟

学 学

号:

指导教师:

刘霞林 实验日期:

2016 、10 0、 、13

一、实验目得

通过编程与上机实验理解 Java 语言得继承与多态特性,掌握变量得隐藏、方法得覆盖、重载,掌握抽象类与接口得使用。

二、实验要求

1、编写体现类得继承性(成员变量、成员方法、成员变量隐藏)得程序。

2、编写体现类得多态性(成员方法重载)得程序. 3、编写体现类得多态性(构造方法重载)得程序。

4、编写使用接口得程序。

三、实验内容

( ( 一) ) 类得继承

1、创建 公共类 Student、

(1)编写程序文件 Student、java,源代码如下:

pub li c class Student

p prot ect edString name;

//具有保护修饰符得成员变量

p rotected 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、name+”, ”+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 (a>b)

return a+""+b; else return b+""+a; } public String sort(int a, int b, int c)

{ int swap; if (a〈b) { swap=a; a=b; b=swap; } if (a

{ String s=""; int swap; for (int i=0; i〈arr、length; i++)

for (int j=0; j<arr、length-1; j++) if (arr[j]>arr[j+1])

{ s[j]; arr[j]=arr[j+1]; arr[j+1]=swap; } for (int i=0; i〈arr、length; i++)

s=s+arr[i]+""; 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 〈applet codebase=e:/java/程序 code=KY3_11、class width=420 height=380〉 ( ( 三)

构造方法得重载

(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=”用户名:”+userName; else s="用户名不能为空!"; if (password!="12345678") 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("张驰”,”12345678"); } }

(2)编译并运行程序 (四) ) 实现

Mous eL istener 与

MouseMoti o nL i stener 两个接口

(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 文件,源代码如下. 〈applet codebase=e:/java/程序 code=Interface、class width=320 height=180〉

条线 四、运行结果

五、思考题

1. 使用变量之前就是不就是都要先声明变量。使用变量之前就是不就是都要先赋值,为什么? 使用之前必须先声明,因为声明了,运行时计算机才能划分计算机空间给她。根据变量不同,或者在堆里,或者在栈里.但就是没有声明得话,连存在得空间都没有,那么读写也就无从谈起。不就是必须先赋值,因为会自动赋默认值。

2. 什么就是构造方法。

构造方法就是一种特殊得方法,它就是一个与类同名且没有返回值类型得方法。对象得创建就就是通过构造方法来完成,其功能主要就是完成对象得初始化.当类实例化一个对象时会自动调用构造方法。构造方法与其她方法一样也可以重载。

3. 类得继承与多态有什么作用,在使用上应该注意什么问题。

继承就就是子类继承父类,使子类具有父类得各种属性与方法,好处就就是避免多余得代码出现,例如,项目中常常要用到得数据库得开启关闭,就可以单独写一个父类,其她类要用得话可以去继承。。。

多态就就是一个接口,使用不同得实例去执行不同得操作,好处就就是增强程序得可扩展性及可维护性,使代码更简洁 六、总结

方、藏隐得量变了握掌,性特态多与承继得言语 avaJ 了解理验实机上与程编次这过通ﻩ法得覆盖、重载,掌握抽象类与接口得使用。对于 Java 语言有了更深一层得认识,多态与继承、方法重写密切相关,我们在方法中接收父类类型作为参数,在方法实现中调用父类类型得各种方法。当把子类作为参数传递给这个方法时,java虚拟机会根据实际创建得对象类型,调用子类中相应得方法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。