在实例教学中培养面向对象的程序设计思维

2017-05-13 23:14邓芳
中国信息技术教育 2017年8期
关键词:面向对象思维能力

邓芳

摘要:面向对象编程是目前最为流行的编程思想,如何让学生掌握这种编程思想,并做到触类旁通,具备快速学习的能力呢?本文对如何在实例教学过程中培养学生面向对象的程序设计思维进行了详细阐述。

关键词:实例教学;面向对象;思维能力

中图分类号:G434 文献标识码:A 论文编号:1674-2117(2017)08-0087-02

目前,程序设计主要有两种思维方式:一种是面向过程的程序设计,另一种是面向对象的程序设计。其中,面向对象的程序设计思维更符合对现实世界的描述,为广大软件开发者所推崇。面向对象的程序设计思想认为:世间万事万物皆为对象,如孩子、轿车、马、故宫、船、桌子等,我们身边的事物都是具体的个体(对象),当我们说到或想到这些个体时,头脑中马上会想到它们具有什么特点、功能、作用等。也就是说,如果我们想用计算机来解决现实世界的问题,那就要让计算机按人类的思维习惯来处理问题,这就是面向对象思维的缘由。那教师如何将面向对象的思维方式教给学生呢?在教学过程中,教师应如何培养学生的这种编程思维呢?下面,笔者结合自己的教学实践来谈谈如何培养学生面向对象的程序设计思维。

确定教学目标

根据“TIOBE开发语言排行榜”,在全世界排名前二十的开发语言中,有近60%为面向对象的语言,其中包括Java、C#、C++等流行的面向对象的语言,因此学校有必要开设一门面向对象的程序设计课程。但无论选择开设哪种面向对象的语言课程,都要明确教学目标,也就是说是教授一门语言技术,还是教授一种编程思想,俗话说“授人以鱼不如授人以渔”,所以我们确定课程的教学目标是培养学生面向对象的编程思想,教给他们快速学习的能力。

确认教学内容

课程的教学目标决定教学内容。因此,课程内容以讲授面向对象的思想为主,其中包括什么是面向对象、面向对象的特点以及面向对象的实现三个方面。

课程从面向对象的封装性、继承、多态三大特性展开,这三个特征是所有面向对象的程序设计语言都具备的共同特点,也是面向对象的编程的精髓所在。无论是Java语言还是.net开发语言,都是基于这三大特性展开的,而Java语言是目前最为流行的开发语言,所以笔者选择依托Java语言,来实现面向对象的编程思想。

优选教学实例

由于案例教学的实践性较强,所以真实的典型案例能够激发学生的学习兴趣。独立研究和相互讨论的方式,也能提高学生分析问题和解决问题的能力。

在本课程中,选择的案例不仅要求具有真实性,更强调延续性。所谓延续性,是指对面向对象的各个阶段(分析、设计类—封装—继承—抽象—多态)均采用同一个项目案例,然后分析各个阶段中的这个项目,将项目从小到大排序,逐渐完善。

1.教学案例——宠物商店

(1)分析、设计类:首先分析宠物商店可以有哪些宠物(发现类),然后分析狗、鸭子等动物具有什么特征(发现类的属性),接着分析狗、鸭子有什么行为(发现类的方法),最后以类图的形式表示出来。

(2)封装:这是面向对象的编程三大特性之一。它是指将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。例如,我們针对狗类、鸭子类的属性进行私有化设置,并在方法中添加对属性的setter/getter方法。

(3)继承:通过前两步的分析发现,狗类和鸭子类有共同的属性(名字、健康值、与主人的亲密度等)和方法(输出相关属性、setter/getter方法),如果增加一种宠物,那还要再写一个具有以上属性和方法的类。因此,我们建立了一个父类Pet,将所有宠物的共同属性和方法集中在此类中,然后狗类、鸭子类等继承于父类,由此引出继承及其方便修改代码、减少代码量等优点。

(4)抽象:在继承中,我们建立了三个类,分别为父类Pet、子类Dog和子类Duck,并创建了属于这三个类的对象。这在语法结构上没有任何问题,但是父类Pet产生的对象是没有任何意义的,因为父类Pet没有具体的个体,所以我们引入抽象,抽象类可以说是起到了模板的作用。

(5)多态:同一个引用类型使用不同的实例而执行不同的操作。在这个案例中,可以在子类添加为宠物治病的方法public void toHospital(),然后创建一个主人类Master,它可以为生病的宠物治病public void Cure(Pet pet)。最后我们来测试这个功能:

Pet pet = new Dog();

Master master = new Master();

master.Cure(pet);

即,同一个引用类型Pet pet,引用不同的实例pet=new Dog()或pet=new Duck(),会引发对不同宠物的治疗方法,而代码在长度及可读性上都进行了极大的优化。

通过本案例,笔者对面向对象编程思想的精华进行了讲解,并在每个阶段中,依托Java语言来实现、验证案例。学生在这样的实验及理论课程中,更加容易理解和体会面向对象的编程思想中的抽象概念。

2.学生自学作品案例

除了教师提供教学案例,学生还要能够自主分析、设计案例。因此,笔者设计了几个案例,让学生在课后完成,以培养学生分析问题和解决问题的能力。例如,在“汽车租赁”项目中,学生完全可以参照教学案例的阶段进行设计,这是一个巩固知识的案例;“消除飞机”或“消除字母”等游戏项目,则是为了提高学生的应用能力的项目。

笔者通过“课上、课下”两手并进,加深了学生对面向对象编程思想的理解,学生对此也普遍反映良好。

结束语

在案例教学的实施过程中,我们不仅要求学生采用Java来实现项目,还要求他们了解另一种语言(C++或C#)。在学习的过程中,学生不仅能对比不同的开发语言,实现面向对象的程序设计,还能锻炼举一反三的能力,做到触类旁通。

案例教学也有利于提高教师的整体水平。首先,教师必须搜集、整理合适的案例,并对案例中所涉及的相关知识有较深刻的认识;其次,教师还必须有较强的综合能力,这样才能在案例分析讨论结束后进行总结和点评。

猜你喜欢
面向对象思维能力
面向对象数据库教学方法的探讨
一题多变,提高思维能力
培养思维能力
面向对象的计算机导论课程教学
基于Web的科研项目管理系统的设计与实现
应力波反射法测锚索长度的数据处理软件设计与实现
高职计算机专业的一次信息化教学单元设计
从面向过程到面向对象思维方式的教学引导