第一范文网 - 专业文章范例文档资料分享平台

实验 3 面向对象编程练习 (3)

来源:用户分享 时间:2020-06-22 本文由紫梦★恋星 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

(七)类的多态性练习

1. 理解类的多态性

类的继承发生在多个类之间,而类的多态只发生在同一个类上。在一个类中,可以定义多个同名的方法,只要确定它们的参数个数和类型不同。这种现象称为类的多态。 多态使程序简洁,为程序员带来很大便利。在OOP 中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名字,用不同的参数代表不同的功能。这样,在使用方法时不论传递什么参数,只要能被程序识别就可以得到确定的结果。

类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的重载。 2. 方法的重载

方法的重载是指对同名方法的不同使用方式。 ? 程序功能:对不同的数进行排序输出。在IntSort 类中定义3 个同名的方法sort,

在 ? 编写LX3_9.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

if (a

if (b

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 LX3_11 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(\数组的排序结果:\} } ? 编译并运行程序 ? 三个同名方法

public String sort (int a, int b)

public String sort (int a, int b, int c) public String sort (int arr[]) ? 编写LX3_10 类文件的页面文件LX3_11.html

?

3. 构造方法的重载

构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new 操作符调用。

构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。 ? 编写构造方法RunDemo 的重载程序文件LX3_12源代码如下。

class RunDemo {

? ?

private String userName, password;

RunDemo() {

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

RunDemo(String name) { userName=name; }

RunDemo(String name, String pwd) { this(name); password=pwd; 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 LX3_12 {

public static void main(String[] args) { new RunDemo();

new RunDemo(\刘新宇\new RunDemo(null,\邵丽萍\

new RunDemo(\张驰\} }

编译并运行程序

三个构造方法,其中第一个无参构造方法RunDemo() 的实际作用是对成员变量赋缺省初值,由于userName和password都是String 类,所以它们的缺省初值为null。第二个构造方法RunDemo(String) 只有一个参数,用来对成员变量userName 赋初值。第三个构造方法RunDemo(String, String) 有两个参数,并有更多的内容,首先调用this(name),其实际作用就是调用当前类的构造方法RunDemo(String name);然后对成员变量password 赋值;最后调用check 方法来检查userName 和password,类似于一般程序的口令验证。重载构造方法的执行由对象根据实际参数的个数、类型和顺序确定。

四、实验小结:

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育实验 3 面向对象编程练习 (3)全文阅读和word下载服务。

实验 3 面向对象编程练习 (3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1096902.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top