APP下载

Java程序设计课程中“类与对象”的教学实践

2016-07-25黄国华

新校园·上旬刊 2016年5期
关键词:面向对象案例

摘 要:类与对象是Java语言中的重要内容,是面向对象编程的基础。本文详细地讲述了一套类与对象的教学方法,即“知识点归纳-案例构建或选择-案例演示与讲解-课堂练习-课后作业-实践操作”。

关键词:案例;面向对象;Java;类

Java语言自从1995年被推出以来,一直广受喜爱,被称为网络语言。在最近十几年TIOBE编程语言社区发布了编程语言排行榜,Java始终位居前三位。由于其面向对象、安全、多线程、分布式等优点,Java成为应用系统首选的开发语言之一。在许多互联网招聘网站发布的招聘信息中,Java工程师也是需求量最大的职位之一。当今,地方本科院校正在转型发展,办应用型技术大学。因此,提高Java程序设计课程教学质量,不仅可以提高学生的就业能力,而且也可以为信息产业培养软件人才,使中国的信息产业做大做强。目前,大部分高等院校计算机科学与技术、网络工程、信息与计算科学等信息类专业都开设了Java程序设计课程。由于学生学习该课程之前,许多院校都开设C程序设计课程。C语言是一门经典的程序语言,对其他程序设计语言的设计产生了极大影响,至今在嵌入式操作系统开发上有着广泛的应用。鉴于它的重要性,大部分院校信息类专业培养方案把它作为一门基础必修课,在大学一年级就开设了。而C语言是一门面向对象的程序设计语言,对以后面向对象的学习有阻碍作用。根据教学经验,学生对先入为主的知识印象深刻,很容易产生思维定式,不习惯使用面向过程思想考虑问题。Java程序设计中类与对象是面向对象编程基础。开展好“类与对象”的教学对于转变学生编程思想,奠定软件开发理论基础具有重要意义。笔者在地方高校从事了多年的Java程序设计课程教学,通过反复探索与实践,总结了一套行之有效的教学方法,即“知识点归纳-案例构建或选择-案例演示与讲解-课堂练习-课后作业-实践操作”教学模式。

一、知识点归纳

依据教学大纲和内容之间的逻辑关系,将“类与对象”的教学内容归纳为若干个知识点,即类定义、类继承、方法或变量的静态性、访问权限、对象初始化、方法重载、方法覆盖和多态机制。在每一个知识点上,我们总结其“规则”。如在访问权限上,类的访问权限有public和默认两种,成员的访问权限有public,protected,默认和private四种。标识为private的成员只能在类中被访问,默认访问权限只有在同一个目录下被访问,标识为protected的成员可以在同一个目录下或继承关系的子类中被访问。成员能够被访问必须具备类和成员可访问权限。

二、案例构建或选择

围绕知识点,我们精心挑选或构建体现知识点规则的案例。如在对象初始化知识点上,对象初始化遵循的顺序是“父类静态变量赋初值,父类初始化静态块,子类静态变量赋初值,父类非静态变量赋初值,父类非静态语句块,父类构造方法,子类非静态变量赋初值,子类非静态语句块,子类构造方法”。我们构建Animal类,拥有静态成员变量weight,非静态成员变量age,构建静态块和非静态块,然后分别赋值相应变量后输出;在构构造函数中,重新赋值后再输出。定义子类Cat,拥有静态变量num和非静态变量luck,构建静态块和非静态块,然后分别赋值相应变量后输出;在子类构造函数,重新赋值后再输出。

三、案例演示与讲解,课堂练习

在课堂上,教师在讲解知识点和相应的规则后,在PPT上显示案例,让学生根据知识点的“规则”写出程序运行结果。在学生给出结果后,教师演示程序运行结果,揭示相应的机制。通过这个过程后,做错了的学生知道错在哪里,做对了的学生理解了面向对象的思想。教师再布置一个类似的习题,让学生课堂中练习,加深印象和理解。

四、课后作业和实践操作

“纸上得来终觉浅,绝知此事要躬行。”尽管在课堂中听懂了教师所讲内容以及会做一些练习题,但如果不加以巩固,学生就会遗忘。此外,学生自己不动手编程,其理论和实践水平都不会提高。教师要布置相应的作业题和实践操作题来巩固和提高本次教学内容。作业题和实践操作题分为两类,一类与课堂内容和难度相类似,起巩固作用。另一类比课堂内容稍难一些,促使学生主动思考,起提高作用。

总之,从课堂学生互动的积极性以及作业完成情况来看,方法的教学效果还比较理想。案例、作业题、实践操作题等相关的资源库构建是该方法教学的基础,也应当不断完善。

基金项目:湖南省教育厅优秀青年项目(15B216)。

作者简介:黄国华,副教授,邵阳学院理学与信息科学系教师。

猜你喜欢

面向对象案例
案例4 奔跑吧,少年!
随机变量分布及统计案例拔高卷
面向对象的计算机网络设计软件系统的开发
面向对象的数据交换协议研究与应用
发生在你我身边的那些治超案例
面向对象Web开发编程语言的的评估方法
一个模拟案例引发的多重思考
面向对象信息提取中影像分割参数的选择