APP下载

基于“四线”的Java程序设计教学方法研究

2018-10-13李向赵济吴亮

教育教学论坛 2018年41期
关键词:继承面向对象教学方法

李向 赵济 吴亮

摘要:由于Java语言具有简单易用、面向对象、跨平台等特性,使其一经面世就受到广泛关注,成为目前使用最为广泛的网络编程语言之一。考虑到Java语言应用的广泛性,越来越多的高校开设了Java程序语言设计课程,并且受到了极大的关注和重视。为了提升学生对Java面向对象程序设计的学习效果,基于多年的Java教学实践經验,本文总结了一套基于“四线”的Java程序设计教学方法,即温故知新、继往开来、举一反三、宁静致远。通过讲授与实践相结合的方式,从基础语法、面向对象、可视化以及网络编程等方面让学生从入门到精通。

关键词:Java;面向对象;封装;继承;教学方法

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2018)41-0151-04

一、引言

Java语言作为一种面向对象的可以跨平台的程序设计语言,具有高效性、安全性、通用性和平台移植性等特点[1],在当今云计算和互联网+的热潮下,Java语言有着更显著的优势和更广阔的空间。目前Java语言在计算机、手机、互联网、通信、数据中心等行业都得到了广泛的应用[2]-[3],因此,Java语言程序设计成为了计算机等相关专业的必修课程,高校的很多专业都开设了Java语言的课程,如何让学生简易地掌握一门新的语言,并能熟练完成相应程序的开发成了Java教学的重点与难点[4]-[6]。为了使学生掌握Java面向对象程序设计思想,培养学生的科学思维和创新能力,本文通过基础语法对比学习来达到温故知新的目的,基于面向对象思想的介绍引入面向对象编程形成继往开来的局面,通过可视化进一步加深面向对象的理解取得举一反三的效果,最后在网络编程的基础上强化Java的优势达到宁静致远的学习境界,基于以上“四线”的教学途径,让学生更深入高效地学会Java语言。

二、第一线:温故知新

学习Java面向对象程序设计之前,大学生往往已经先修了C语言,甚至有的专业学生还学习了C++面向对象程序设计语言。Java、C、C++作为高级程序设计语言,其具有高级程序设计语言的共性,从而可以基于Java语言与C、C++语言在基础语法上的相似之处,回顾已经学过的高级程序设计语言使学生快速学习Java这门新语言。Java语言具有高级程序设计语言的共性,由标识符、关键字、分隔符、运算符等组成最基本的元素,任何一个复杂的Java语句都可以由这些基本元素组成,这些基本元素通过不同的语法含义和组成规则,可以实现不同功能的Java语句,从而构成Java语言的基本语法。Java语言可以认为是C语言的后续衍生语言,在基本语法部分与C语言具有高度的一致性,如Java程序中的空白符、标识符、注释、变量、运算符、关键字、控制语句等都可以看到C语言的身影,授课过程中注意通过具体实例突出强调两种语言存在的细微差别,从而可以基于C语言的基本语法,快速学习Java语言的基本语法知识,达到温故知新的目的。在温故知新这条学习途径中,让学生完成基于输入的三角形边长,输出对应三角形周长和面积的实例,从而达到灵活运用学习的Java语言基本语法知识完成一定功能的目的,具体代码如图1所示。从该实例中,引导学生思考不同的高级程序设计语言的异同,让学生在学习基础的过程中,发现虽然几种高级程序设计语言表达形式有所不同,但实现思想却具有高度的一致性,如具有同样的程序控制结构(顺序结构、选择结构和循环结构),从而加强学生举一反三学习领悟和实践能力,更加快速地接受Java这一新的程序设计语言。

三、第二线:继往开来

在温故知新第一条学习途径中,通过与C/C++对比,介绍了Java语言的基本语法、程序的基本结构,使学生在已有程序设计语言基础上更加轻松地学习Java。但通过一段时间的学习,学生一般会面临着这样的困惑,两种语言既然如此相似,为什么还需要发明Java语言,Java语言为什么会如此大行其道?Java作为完全面向对象程序设计语言,与基于面向过程程序设计语言C在设计思想和理念方面具有很大不同,但在温故知新的学习途径中却仍然使用着面向过程的编程思想,从而本能地以为Java和C语言具有相似的处理方式。面向过程的编程把解决的问题首先按照功能分解为一系列的步骤,然后分别通过函数实现功能步骤,完成问题的求解。但面向对象编程的思想却是将数据放在第一位,对拟解决的问题进行分析,抽象出完成这个事情所需的类与对象,将功能封装到对象中,在对象中实现具体的细节,通过对象的组合方式解决问题,从而使得开发的程序具有易维护、易理解、易扩展等特性。对于面向对象教学本身就有一定的难度,学生在习惯了面向过程的C语言编程后,学习面向对象的设计方法,需要一个思想过渡的过程。面向对象编程语言中的封装、继承、多态等新概念的理解,还需要学生结合日常生活上机多加练习。教学上可以采用理论与实际操作相结合的授课方式,一边讲解理论一边实践编写程序,在编写程序的过程中对知识点的理论及应用融会贯通。例如,在学习构造方法时,先分析构造方法的执行顺序,再通过编程实践来举例讲解,说明在类中定义默认构造方法和有参构造方法的适用情况;对于继承概念学习时,可以先讲授继承的重要性以及实现机制,再通过程序实例讲解在多重继承时父类和子类之间构造方法的调用规律;在学习多态时,重点讲授动态多态性,即通过父类的引用调用子类成员方法的行为,动态多态性在大型程序设计的扩展性上使用非常便捷,为程序扩展提供了很大便利。例如在已知三角形边长求周长和面积的实例中,如图2,通过面向对象思想的实现,可以发现代码更易理解和重用,减少了出错的可能性。因此,在Java面向对象教学过程中注意对封装、继承、多态等面向对象重点内容进行讲解和拓展,尤其对面向对象设计的三大特性在程序设计中所带来的优势进行明确阐明,证明Java面向对象设计语言的魅力是有据可依的。从而,在原有C/C++的基础,让学生领会Java语言自身的优势,对Java逐渐产生兴趣,学会面向对象编程,形成继往开来的局面。

四、第三线:举一反三

在前两节的学习中,通过Java基础语法和面向对象编程的方式帮助学生打开了Java语言学习的大门,虽然可以出色完成需求的功能,然而最终呈现给程序用户的功能往往并不太直观,需要一定的Java语言背景。可视化通过用户界面搭建了另外一种用户和计算机的渠道,图形化的用户界面可以让用户在使用计算机上更加方便。因此,如何在学习Java面向对象思想的基础上进一步深化,进行可视化开发,达到举一反三的教学效果是本节主要讨论的内容。可视化的图形用户界面是通过图形方式显示用户操作界面,基于图形用户界面组件完成用户和程序之间的交互。Java语言中的图形用户界面组件基于面向对象的思想继承于组件(Component)类,提供公共的属性和方法,根据其作用又进一步细分为基本组件和容器,其中基本组件之上不能容纳其他组件,如文本框(Label)、按钮(Button)、复选框(CheckBox)等,而容器是一种可以用来容纳其他组件的特殊组件,如窗口(Window)、面板(Panel)、对话框(Dialog)等。在图形用户界面上,通过上述定义的组件绘制操作界面元素,基于事件驱动的Java事件监听机制来完成用户和组件之间的交互。事件监听机制是Java图形用户界面的另一个重点,通过某个动作触发组件后,Java运行时系统调用对应的处理方法响应该操作,从而在事件监听机制中需要明确事件(什么动作)、事件源(动作对象)、事件处理(动作处理)。

基于介绍的Java语言图形用户界面,实现同样的已知三角形边长求周长和面积实例,如图3所示,对比前两节基于Java语言基础语法和Java语言面向对象的程序设计实现实例,可以发现基于Java语言图形用户界面的实现具有很强的展示性,通过作用在“计算”按钮上的点击事件可以激活对应的处理方法,得到三角形的周长和面积,并同时在对话框的右侧区域绘制对应三角形的形状。通过本节基于Java语言图形用户界面的介绍以及简单实例的应用,帮助学生建立可视化编程的思维,进一步扩展了Java面向对象编程的思想,达到举一反三的学习实践效果。

五、第四线:宁静致远

前三节分别从基础语法、面向对象思想、可视化的图形用户界面三个方面介绍了Java语言的一些特性,但作为近十年来十分流行的编程语言,Java语言是否有其更为明显的优势呢?Java语言最初是为嵌入式开发而产生的,但后来伴随着因特网的发展与兴起,Java由于自身的可移植性和安全性等机制被推到了計算机程序设计语言的前沿,人们发现Java语言的机制十分适合网络,对网络有非常好的支持,从而成为了一种十分重要的网络编程语言,在计算机TIOBE排行榜中多次位列第一。因此,本节主要介绍Java语言网络编程的基础知识,让学生强化Java的优势达到宁静致远的学习境界。

Java语言是第一个可以完全融入网络的语言,在编写网络应用程序方面主要有以下几个优势:(1)Java语言与生俱来就是与平台无关的,从而可以运行在不同的平台上并进行网络通信;(2)Java语言安全机制非常完善,可以检查程序的权限设置;(3)JDK类库提供了套接字API、JDBC API和JavaMail API等大量的网络类库,为程序的开发提供了很大的便利。在网络编程的授课过程中,首先简要介绍计算机网络方面的基础知识,包括用于描述网络结构原理和工作原理的网络模型、七层OSI参考模型、四层Internet网络模型、IP与DNS网络层协议、TCP、UDP传输层协议等,在此基础上,介绍Java语言中的套接字网络编程。套接字(Sockets)是应用程序和网络协议的接口,在Java语言中,通过定义若干个类继承网络协议来实现网络通信,定义了Java应用程序和网络协议接口,从而形成Java套接字,其中TCP套接字使用TCP协议实现可靠的网络通信,UDP套接字使用UDP协议实现效率较高的网络通信。

Java套接字网络编程涉及服务器端和客户端,主要流程是首先在服务器端创建服务器套接字,并绑定端口号,从而服务器就可以从这个端口监听连接,当客户端根据服务器地址和指定端口号请求与服务器进行连接的时候,打开连接套接字,当服务器接受连接后就可以通过网络流的方式进行操作完成客户端和服务器端的通信。在Java网络编程中,为了让服务器可以同时处理多个客户端的请求,往往需要使用多线程机制,从而对于每一个客户端的请求都可以由一个独立的线程进行处理。Java语言的多线程机制是在一个程序中定义多个线程并让他们同时运行,同类的多线程在运行时共享内存和系统资源,从而可以更好地利用多核CPU资源[7]。

为了实践Java网络编程和多线程机制,模拟服务器和客户端的通信,在已知三角形边长求周长和面积的实例中,由客户端发送三角形的边长,在服务器端进行周长和面积的计算,并把计算结果返回到客户端,实践中在服务器端使用多线程机制处理多个客户端的计算请求,从而可以让一个服务器程序能同时服务于多个客户。如图4所示,通过求三角形周长和面积的简单实例,介绍了Java多线程的网络编程方式,以点带面,更好地帮助学生了解Java语言的优势,进一步提升学生对于Java知识的学习境界。

六、总结

目前Java语言在计算机、手机、网络、通讯等各个行业都得到了广泛应用,为了满足应用单位的需求,高校许多专业都开设了Java语言程序设计这门课程,因此,如何让学生更容易地学习一门新的编程语言和培养学生的学习兴趣是老师教学上的重点。本文发展了基于“四线”的Java程序设计教学方法,从基础语法、面向对象、可视化用户图形界面以及网络编程四个方面让学生基于已有编程基础一步一个台阶逐渐精通Java语言。在课程本身知识点概念教学的同时辅助实例实践,让学生将知识与实际应用相结合,培养学生的实际编程能力和解决程序问题的能力,从而反馈于“四线”教学方法,让学生更深入高效地学会Java语言。

参考文献:

[1]吴倩.Java语言程序设计:面向对象的设计思想与实践[M].第2版.北京:机械工业出版社,2016.

[2]刘松青.构建“Java面向对象程序设计”实践教学体系[J].计算机教育,2009,(2):8-10.

[3]杨晓燕.基于应用的Java面向对象程序设计课程研究与教材建设[J].计算机教育,2012,(3):42-45.

[4]王征.Java课程教学过程研究[J].中国电子商务,2013,(17):132-132.

[5]付宁,黄森.Java面向对象教学思想及教学方法的研究[J].电脑知识与技术,2011,07(4):956-957.

[6]游洋.高职Java课程中模拟工作过程的教学实践[J].黑龙江科技信息,2016,(17):154-154.

[7]Sarkar V,Grossman M,Budimli?Z,et al.Preparing an Online Java Parallel Computing Course[C]// Parallel and Distributed Processing Symposium Workshops.IEEE,2017:360-366.

猜你喜欢

继承面向对象教学方法
教学方法与知识类型的适宜
面向对象的计算机网络设计软件系统的开发
面向对象的数据交换协议研究与应用
浅谈杜审言、杜甫的祖孙关系:推崇、继承、发展
面向对象Web开发编程语言的的评估方法
面向对象信息提取中影像分割参数的选择
我的教学方法