登陆注册
19080000000129

第129章 教学内容与课程体系改革()(70)

(三)匿名类

类有两种重要的成员:成员变量和方法。类还可以有另一种成员:内部类。在一个类中声明的另一个类称为内部类,而包含内部类的类被称为外嵌类。匿名类是一种内部类,它把类的定义和使用(即对象的实例化)结合在一起,且没有类名。

1.与类有关的匿名类当使用类创建对象时,可以把类体与对象的创建组合在一起。也就是说,类创建对象时,除了构造方法还有类体。此类体被认为是该类的一个子类去掉类声明后的类体,称其为与类有关的匿名类。

2.与接口有关的匿名类

可以用接口名和一个类体来创建一个匿名对象,此类体被认为是实现了接口的类去掉类声明后的类体,称其为与接口有关的匿名类。

3.使用匿名类的场合

匿名类的一个重要作用是能够提供适配器类(AdaPter)的简单实现方式。此外,在下列这些情况下,也建议使用匿名类:

(1)类的主体部分非常短;

(2)只需要类的一个对象实例;

(3)类的使用恰好在它的定义之后;

(4)没有类名称不影响对代码段的理解。

三、结论

在Java的学习过程中,初学者要注意掌握上述提到的这些内容。此外,还有一些语言之外的建议。由于大部分学生先学C++后学Java,而且C++又掌握得不好,特别是指针的使用。在学习Java时就对面向对象语言有心理障碍,担心也学不好。因此,首先要克服这种不良心理,这也需要教师进行恰当的引导。还要多上机实践,编程语言是一门很强的实践课程,单纯靠死读教材是无法完全掌握的。多研读好的Java源代码,读懂后试着改动它,然后再模仿别人的代码开始编写,最后达到自己设计和编写代码。编程时多参考Java的API帮助文档,它的作用等同于学习VC时的MSDN。充分利用好这个帮助系统就能解决好Java的类库很庞大的这个问题。

参考文献

[1]Bruce Eckel.Java编程思想.陈昊鹏译.北京:机械工业出版社,2006.

[2]耿祥义,张跃平.Java2实使用教程.北京:清华大学出版社,2006.

[3]朱仲杰.Java2全方位学习.北京:机械工业出版社,2006.

[4]陈淑清,蓝雯飞.剖析Java语言的抽象类和接口.微计算机应用,2004,25(4):626-630.

[5]蔡学镛.Java 的多态.程序员,2002,6:76-78.

[6]David Flanagan.Java技术手册.吴益华译.北京:中国电力出版社,2002.

[7]蓝雯飞.基于Java 语言的多态性探讨.电脑知识与技术,2005,7:29-32.

NS2在“计算机网络”类课程教学中的应用

赵阿群

(北京交通大学计算机与信息技术学院,100044)

摘要:为了解决“计算机网络”类课程教学和实验面临的实际问题,构建了一个“基于NS2的计算机网络教学演示和实验系统”,该系统由教学演示系统和学生实验系统两部分组成,前者供教师课堂授课时演示使用,后者供学生实验课或课后实验使用。该系统在实际教学和实验中取得了一定的效果,下一步的工作重点将放在实验库的完善和系统使用的方便性等方面。

关键词:计算机网络课程 NS2演示系统 实验系统

一、引言

“计算机网络”类课程的教学涉及大量的网络协议,而计算机网络协议具有抽象性、异步性、并发性和多任务等特征。目前,教学中教师大都采用口头讲述的方法给学生讲解网络协议,并通过一些图示或动画加深学生的直观感受,在实验中让学生编程实现部分简单的协议机制。这些传统的教学和实验方法中普遍存在着教师讲解费力,学生理解困难等问题。因此,如何通过新的实验方法让学生直观地观察到协议运行中的复杂行为,从而加深对网络协议的协议机制和控制策略的理解是“计算机网络”类课程教学中的一个难点和亟待解决的问题。

另一方面,计算机网络研究领域存在不少优秀的网络仿真软件(如NS2、OPNET等),它们提供了强大的计算机网络协议仿真功能,能够方便生成各种协议运行环境(如不同拓扑结构、不同数据流量等),并能够以可视化的方式直观显示协议行为。然而,这些仿真软件本身都是一个难学的庞大系统,其安装和使用都比较复杂,目前主要供计算机网络研究人员研究、扩充和开发新的网络协议使用,对于初学计算机网络的学生来说,让他们直接学习和使用这些仿真软件很不现实。

为了解决上述矛盾,我们构建了一个“基于NS2的计算机网络教学演示和实验系统”,在网络仿真软件NS2和学习计算机网络的学生之间建立起一条连接的桥梁。通过该系统,学生既可以省去难以学习网络仿真软件的困难,又可以利用其强大的协议仿真能力进行网络模拟实验,从而更加深入地理解网络协议中的复杂行为。该教学演示和实验系统能够应用到“计算机网络原理”、“网络新技术”和“计算机网络基础”等课程的教学和实验中。

二、NS2简介

网络仿真是一种利用数学建模和统计分析的方法模拟网络行为,从而获得特定的网络特性参数的技术。NS2是美国加州大学伯克利分校LBNL 网络研究组开发的一个网络仿真软件,主要用在与网络相关的仿真,无论是固定网络还是无线网络,它都有很好的支持,尤其在新的网络协议研究方面,具有重大价值。

NS2是一个面向对象的基于离散事件驱动的网络仿真工具,其核心部分是一个离散事件模拟引擎。NS2中有一个“调度器”类,负责纪录当前时间,调度网络时间队列中的事件,并提供函数产生新事件,指定事件发生的时间。在一个网络模拟器中,典型的事件包括分组到达、时钟超时等,模拟时钟的推进由事件发生的时间量确定。模拟处理过程的速率不直接对应着实际时间。一个事件的处理可能又会产生后继的时间。模拟器所做的就是不停地处理一个个事件,直到所有的事件都被处理完或者某一特定事件发生为止。

NS2提供了丰富的构件库,已经对网络系统中一些通用的实体进行了建模,如节点和分组转发、链路和延迟、队列管理与分组调度、代理、时钟、分组头及其格式、局域网、移动网络、卫星网络等,并用对象来实现这些实体的特性和功能。同时NS2还提供了丰富的数学支持,如随机数产生、积分等;提供了方便的追踪和监视方法;提供了完整的路由支持,如单播/组播路由、动态/静态路由、层次路由等。NS2支持GPRS、移动IPv6、蓝牙技术、RSRV、MPLS、Ad Hoc 无线网等新技术的仿真。

NS2中的构件库由两种语言编写:C++和Otcl。C++是广为人知的高级程序设计语言;Otcl是MIT开发的Object Tcl,即面向对象的扩展。tcl全称是Toolkit Command Language,它是一种灵活的、交互式的脚本语言。NS2中的构件通常都作为一个C++类来实现,同时有一个Otcl类与之对应,这种方式被称为分裂对象模型。这种模型兼顾了仿真性能和灵活性两个方面。一方面,C++是高效的编译执行语言,可使仿真过程的执行获得较好的性能;另一方面,Otcl是解释执行的,用Otcl 进行仿真配置,可以在不必重新编译的情况下随意修改仿参数和仿真过程,提高了仿真的效率。

为了直观地观察和分析仿真结果,NS2还提供了可选件NAM和XgraPh。其中,NAM为“Network Animator”的缩写,是一种动画显示工具,用于演示网络运行动画,如网络拓扑、包传输等。在NS2中,仿真的全部宏观过程都可以通过NAM这个图形界面得到,它可以显示从仿真开始到结束过程中的拓扑结构和各个代理的行为及链路的状态。而XgraPh用于显示静态的图形曲线,它可以将结果转换成易于比较的平面统计图,方便使用者对网络性能进行分析。

三、系统的构建

基于NS2的计算机网络教学演示和实验系统由两部分组成:一是教学演示系统,供教师课堂授课时演示使用;二是学生实验系统,供学生实验课或课后实验使用。在本系统中,我们不需要修改NS2已经实现的协议,也不需要添加新的协议,因此不需要添加或修改NS2的C++代码,不需要重新编译NS2。本系统中用到的NS2仿真过程见图1的虚线框部分,即只需要编写/修改Otcl脚本、运行NS2仿真和观察分析结果。

(一)教学演示系统

教学演示系统主要供教师课堂授课时演示使用。教学演示系统中使用NS2的过程如图2所示,它分为两个过程:一是实验库开发过程,二是课堂演示过程。

实验库开发过程见图2中虚线以上的部分,其目的是为课堂演示准备好材料,并形成实验库,方便在需要时修改和调用。实验库开发的具体步骤如下。

(1)开发者根据课程内容,编写相应的Otcl脚本。例如,为了演示TCP 拥塞控制中的慢启动机制,我们分别编写了两段Otcl脚本:WithSlowStart.tcl和WithoutSlowStart.tcl。两者仿真环境类似,只是前者使用带慢启动机制的TCP,后者使用不带慢启动机制的TCP。

(2)对编写的Otcl脚本运行NS2仿真,生成Namtrace文件。在上例中,我们分别对WithSlowStart.tcl 和WithoutSlowStart.tcl 运行NS2仿真生成相应的Namtrace 文件WithSlowStart.nam 和WithoutSlowStart.nam。

(3)利用NAM工具观察分析实验结果。在上例中,我们利用NAM工具分别打开WithSlowStart.nam和WithoutSlowStart.nam,对比分析实验结果,重点考察实验结果是否体现了TCP带慢启动机制和不带慢启动机制的差别。

(4)如果实验结果满足课堂演示要求,分别将Otc脚本和Namtrace 文件加入Otcl脚本库和Namtrace文件库。

(5)如果实验结果不能满足课堂演示要求,则修改Otcl脚本,然后重复执行步骤(2)-(4)。

实验库的开发完成后,形成相应的实验库(包括Otcl 脚本库和Namtrace 文件库),供课堂演示时调用或需要时(如课堂内容变更)修改。

课堂演示过程见图2中虚线以下的部分,具体步骤如下。

(1)授课教师根据课堂教学的需要,从实验库中选择相应的材料。例如,为了讲授TCP拥塞控制中的慢启动机制,可以选择上例中的WithSlowStart.nam和WithoutSlowStart.nam文件(演示时只需要Namtrace文件,不需要Otcl脚本)。

(2)将选择的Namtrace文件引入到演示文稿中。我们解决了在PowerPoint演示文稿中打开Namtrace文件的问题,因此授课教师可以很方便地将要演示的Namtrace文件插入授课用的PowerPoint演示文稿中。例如,为了演示TCP慢启动机制,可以制作的PowerPoint页面。

(3)课堂授课时进行演示。上例中,只要点击PowerPoint 页面中的【演示】按钮,就可以利用NAM 工具打开相应的Namtrace文件,向学生演示慢启动机制的工作过程。

(二)学生实验系统

学生实验系统主要供学生实验课或课后实验使用。学生实验系统中使用NS2的过程如图5所示。从图5中可以看到,学生实验系统的最大特点是提供了一个可视化界面,该可视化界面是学生进行实验的集成环境。通过该集成实验环境,学生可以建立仿真环境、生成Otcl 脚本、运行NS2仿真并观察分析实验结果。

我们利用了美国DePaul 大学MNLAB 实验室开发的nsBench 软件来搭建学生实验系统的集成实验环境。nsBench 是一种图形化的Otcl 脚本生成工具,利用它可以通过可视化方式建立仿真环境,从而省去初学者编写Otcl 脚本的麻烦。

学生通过实验系统进行实验的具体步骤如下:

(1)参照实验指导书,利用nsBench 工具建立仿真环境,所要完成的工作包括创建网络节点,创建节点间的链路并设置带宽、时延等链路参数,创建运输层代理并设置相关参数,创建数据源并设置相关参数,设置数据源的启动和停止时刻及仿真结束时刻,设置仿真结果Namtrace 等文件的文件名;(2)通过菜单命令自动生成步骤(1)中仿真环境对应的Otcl 脚本;(3)以生成的Otcl 脚本为输入,通过菜单命令运行NS2仿真,生成Namtrace 文件;(4)NS2仿真运行完成后,会自动利用NAM 工具打开生成的Namtrace 文件显示数据包的发送接收过程,学生可以观察分析实验结果。

同类推荐
  • 行政机关公务文书写作格式与范例

    行政机关公务文书写作格式与范例

    一个标准化、规范化、高效率的行政机关需要一套完备而科学的文书系统作支点,因而,规范的文书写作就成为行政机关执行规章制度和步入规范化管理的重要依据。本书突出的特点就是注重理论与实践的结合,讲解力求完备,内容新颖规范,既有理论阐述,又有写法指导,更有范文借鉴,使正在从事或将来有志于投身国家各级政府管理工作及各行各业管理工作的有志之士,在实际应用过程中有的放矢,对问题有鲜明、深刻地认识,水到渠成地写出高质量的公文来。
  • 夏商西周的社会变迁

    夏商西周的社会变迁

    关于中国古史分期问题的研究近年来取得了很大进展,本书试图从正面进行阐述,以论证夏商西周的社会性质问题,从社会政治历史的演进、社会经济的发展和社会生活的进步、社会性质的演变、社会结构与社会制度的变动、社会文化的发展等方面研究了先秦社会的组织形态与社会文化。
  • 揭开青春期的奥秘(男孩女孩青春期教育系列)

    揭开青春期的奥秘(男孩女孩青春期教育系列)

    中学生阶段,在生理的发展上,正是青春发育期。青春发育期这个阶段,既不同于儿童,也不同于成年人。它的最大特点是生理上蓬勃的成长,急骤的变化。人体从出生到成熟,其生理发育有快有慢,有两个阶段处于增长速度的“高峰”期,一个是出生后的第一年,另一个就是青春发育期。在科学上叫它们为“人生的两次生长高峰”。除此之外,生理发育的速度比较缓慢。
  • 中国人的人格

    中国人的人格

    本书写的是中国历史上的一些有人格的人。他们之中有帝王将相,有贩夫走卒,有义侠之士,有文人优伶,有山林隐者,更有弱质女流,上至尧舜,而下迄清末,历千百代而不绝不衰。
  • 教学相长文丛-教者之悟

    教学相长文丛-教者之悟

    教和学两方面互相影响和促进,都得到提高。教学是教与学的交往互动,师生双方相互交流、相互沟通、相互启发、相互补充,在这个过程中教师与学生彼此间进行情感交流,从而达到共识、共享、共进,实现教学相长与共同发展。《礼记·学记》:“是故学然后知不足,教然后知困。知不足然后能自反也,知困然后能自强也。故曰教学相长也。”
热门推荐
  • 左半边翅膀

    左半边翅膀

    最尖锐的角度,最疼痛的青春,这是一部用真实故事编织而成的女生成长日记,一本毋庸置疑的青春必读书!“文字女巫”别样文字深胯讲诉,同你分享成长的疼痛与挣扎。这是一部适合“好”女生看的书,你会分享到更多的成长绎验。这是一部适合“坏”女生看的书,你会发现自己其实并不孤独。这是一部适合家长看的书,你会在书中发现孩子们的内心秘密。
  • 态度决定高度

    态度决定高度

    无论是国王、总统、诺贝尔奖得主、公司总裁、首席执行官,还是世界上的其他领导者,他们都有一个共同点,那就是,都想要把他们获得的有价值的东西传给年轻的一代。他们想要因他们的成就而被人们记住。他们可能在政治,商业,甚至是人生信条上彼此并不赞同,但他们都希望历史会给自己一个积极的评价。一些人留下了财富,一些人留下了灵感,许多人兼而有之。但他们都热切地盼望年轻人能从他们的成功甚至失败中学到些什么。经验是最好的老师。书中的领导者都拥有曲折而不平凡的人生,而现在,他们的经验就是财富,尤其对于那些雄心勃勃、思路开阔的人,那些想在人生中有所成就的人而言。书中收录的是来自一些睿智的领导者的“智慧箴言”。如果你认同它们,便可以加以利用,如果你并不同意,也可以完全摒弃。但是,如果你仔细体会,它们就会帮助你在人生中抢占先机,成为未来的领导者。
  • 陆破天的传奇一生

    陆破天的传奇一生

    自幼丧母,父亲抛弃妻子身居国外,可最近一场风波却将各种疑团解开!一千五百万的遗产?多出来的妹妹?母亲的死因?巨额的遗产,这笔资金该如何安置?妖孽的人生,这段经历该如何谱序?—————来自基营洛子渊客户端,爱生活,爱G大
  • 重生天才三小姐

    重生天才三小姐

    夏顾染不曾想到自己会穿越到异世大陆,穿越到夏家三小姐的身上。夏家三小姐无论是样貌、实力、背景还是智慧,都不是一般人能够比的上的,再加上出生时又含着玉佩,与当今太子定下婚约。夏家三小姐长大后不出所料,天赋是最高的紫色!她经过三年的修炼,竟达到了七阶,就连她爹也就才五阶,所以很是受宠。但是被夏顾染这么一掺和,夏家三小姐瞬间背上了“废柴小姐”这称号。夏顾染嘴角勾起一抹嘲讽的弧度,废柴?那么就看看废柴再怎么变成天才!
  • 异界之天残至尊

    异界之天残至尊

    一对被追杀得仓皇逃窜的夫妇!一个天生头脑不正常的少年!一场飞来横祸带来一些莫名其妙的记忆!这个世界诸多奇异的种族,精灵,矮人,魔兽,亡灵,海族,人类.......他是一个传奇人物开创了古武机甲时代,改变了整个世界的格局,创造了诸多奇迹长生不死,改变躯体,智慧升级.......
  • 薰衣草色的天空

    薰衣草色的天空

    谁的青春里没有一段隐忍而又羞涩的爱恋,当你发现你不知不觉中已喜欢一个人的时候,你是否会义无反顾地去为爱而努力大胆地争取一次?而在这场无疾而终的暗恋中,你是否会从中获得成长的养料?又是否会感谢那个曾让你迷得一塌糊涂、心驰神往的那个人?在一条叫做青春的路上,你有没有孤单和彷徨?独处会不会倍感孤独的厉害?青春无梦想,何以为青春!你会为你的梦想而坚持不懈而做出努力奋斗吗?
  • 一曲清歌

    一曲清歌

    他是卧病在床的王爷,她是从现代穿越过来的少女,阴差阳错之下她嫁给了他,原本以为这场婚姻就是守活寡了,可没想到这个王爷对她也还不错嘛……
  • 青梅别害羞

    青梅别害羞

    丫头卖不卖账,少爷宠不宠爱,二人世界,一片混乱
  • 野蛮家教别嚣张

    野蛮家教别嚣张

    她没安全感,因为她12岁父母双亡;她叛逆,因为她怨恨哥哥为了一个女孩在他最脆弱的时候又离她而去;她独立,因为七年的独立生活让她明白一个道理,于子夜不是没了谁就不能活。可是她是时运不济还是命运多舛?在她十八岁的时候,她的生命里竟然出现了他。
  • 重生之鬼王帝妃

    重生之鬼王帝妃

    云轻烟花尽心思用尽全力把自己的夫君推向皇位,却被其他妃子陷害,导致自己的孩子和自己一起命丧黄泉。在贵人的扶持下重生,看她如何步步为营,扭转乾坤,如何在众多人中选出自己的真爱。