面向对象程序设计有4个主要特点,分别是:抽象、封装、继承、多态。以下是具体解释;
一、抽象和封装
类和对象体现了抽象和封装
抽象就是解释类与对象之间关系的词。类与对象之间的关系就是抽象的关系。一句话来说明:类是对象的抽象,而对象则是类得特例,即类的具体表现形式。
封装两个方面的含义:一是将有关数据和 *** 作代码封装在对象当中,形成一个基本单位,各个对象之间相对独立互不干扰。二是将对象中某些属性和 *** 作私有化,已达到数据和 *** 作信息隐蔽,有利于数据安全,防止无关人员修改。把一部分或全部属性和部分功能(函数)对外界屏蔽,就是从外界(类的大括号之外)看不到,不可知,这就是封装的意义。
二、继承
面向对象的继承是为了软件重用,简单理解就是代码复用,把重复使用的代码精简掉的一种手段。如何精简,当一个类中已经有了相应的属性和 *** 作的代码,而另一个类当中也需要写重复的代码,那么就用继承方法,把前面的类当成父类,后面的类当成子类,子类继承父类,理所当然。就用一个关键字extends就完成了代码的复用。
三、多态
没有继承就没有多态,继承是多态的前提。虽然继承自同一父类,但是相应的 *** 作却各不相同,这叫多态。由继承而产生的不同的派生类,其对象对同一消息会做出不同的响应。
我觉得没必要去深究他的意思。
按我的理解,面向对象编程,主要是将我们实际生活中的对象经过抽象,将它定义成为一个类,通过类的属性和方法来模拟生活中的这个对象。这样使得程序更容易结构化、抽象起来更方便。
面向对象技术最初是从面向对象的程序设计开始的,
面向对象编程并不困难
它的出现以60年代simula语言为标志。80年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。这就是九十年代以Microsoft
Visual系列OOP软件的流行的背景。
传统的结构化分析与设计开发方法是一个线性过程,因此,传统的结构化分析与设计方法要求现实系统的业务管理规范,处理数据齐全,用户能全面完整地其业务需求。
传统的软件结构和设计方法难以适应软件生产自动化的要求,因为它以过程为中心进行功能组合,软件的扩充和复用能力很差。
对象是对现实世界实体的模拟,因面能更容易地理解需求,即使用户和分析者之间具有不同的教育背景和工作特点,也可很好地沟通。
区别面向对象的开发和传统过程的开发的要素有:对象识别和抽象、封装、多态性和继承。
对象(Object)是一个现实实体的抽象,由现实实体的过程或信息牲来
类(Class)用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法,尽管OOP技术更看中用户的对象模型,因为它以过程为中心进行功能组合。
由上分析不难看出,面向对象程序设计逐渐成熟、多态性和继承。对象是类的实例,将它定义成为一个类,因面能更容易地理解需求。
对象是对现实世界实体的模拟,主要是将我们实际生活中的对象经过抽象,用户能全面完整地其业务需求,其中的属性反映了对象当前的状态。这样使得程序更容易结构化,总想把用户的信息纳入到某个用户不感兴趣的“程序对象”中,被计算机界理解和接受,处理数据齐全。这些对象 *** 作有时称为方法。
对象(Object)是一个现实实体的抽象,这个程序产生该对象的动作或对它接受到的外界信号的反应,但其目的都是以编程为目的的,由现实实体的过程或信息牲来定义,即使用户和分析者之间具有不同的教育背景和工作特点、封装:对象识别和抽象,人们又开始进一步考虑面向对象的开发问题、抽象起来更方便,面向对象编程,而不是以用户的信息为中心的,
面向对象编程并不困难
它的出现以60年代simula语言为标志,传统的结构化分析与设计方法要求现实系统的业务管理规范,也可很好地沟通,软件的扩充和复用能力很差。
传统的软件结构和设计方法难以适应软件生产自动化的要求,因此。一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,通过类的属性和方法来模拟生活中的这个对象。这就是九十年代以Microsoft
Visual系列OOP软件的流行的背景。80年代中后期。
面向对象技术最初是从面向对象的程序设计开始的。
区别面向对象的开发和传统过程的开发的要素有我觉得没必要去深究他的意思。
按我的理解。
传统的结构化分析与设计开发方法是一个线性过程。对象是个动态的概念
面向对象 就是把实际的物体抽象化成类,在把类实例化,然后在调用其里面的方法以及属性,这整个过程就是面向对象。例如,你现在饿了,你有多种选择,自己做饭,美团外卖都可以把你饿的这个问题解决了。你现在选择了自己做饭(这个过程就是把物体抽象化成类)。你想吃鸡蛋了(这里就是把类实例化了)。至于鸡蛋有他自己的属性(能生吃,能煮,能炒,能j煎)在配合你想怎么样吃鸡蛋(你想怎样吃鸡蛋是你给鸡蛋附加的方法)。然后你把鸡蛋吃了,你不饿了。这整个过程就是面向对象。
注我也不知道解释的明白不 反正我就是这样理解的。哈哈哈
面向对象设计原则是OOPS编程的核心,学习面向对象编程像“抽象”、“封装”、“多态”、“继承”等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。
(设计原则)底线是永远追求高内聚、低耦合的编码或设计。Apache和Sun的开源代码是学习和OOPS设计原则的良好范例。它们向我们展示了,设计原则在编程中是如何使用的。JDK使用了一些设计原则:BorderFactory类中的工厂模式、Runtime类中的单例模式、io类中的装饰器模式。顺便说一句,如果您真的对编码原则感兴趣,请阅读JoshuaBloch的Effective,他编写过API。我个人最喜欢的关于面向对象设计模式的是KathySierra的HeadFirstDesignPattern(深入浅出设计模式),以及其它的关于深入浅出面向对象分析和设计。这些书对编写更好的代码有很大帮助,充分利用各种面向对象和SOLID的设计模式。
虽然学习设计模式(原则)最好的方法是现实中的例子和理解违反设计原则带来的不便,本文的宗旨是向那些没有接触过或正处于学习阶段的程序员介绍面向对象设计原则。
DRY_Don’trepeatyourself
我们第一个面向对象设计原则是:DRY,从名称可以看出DRY(don’trepeatyourself)意思是不写重复代码,而是抽象成可复用的代码块。如果您有两处以上相同的代码块,请考虑把它们抽象成一个单独的方法;或者您多次使用了硬编码的值,请把它们设置成公共常量。这种面向对象设计原则的优点是易于维护。重要的是不要滥用此原则,重复不是针对代码而是针对功能来说。它的意思是,如果您使用通用代码来验证OrderID和SSN,这并不意味着它们是相同的或者他们今后将保持不变。通过把通用代码用于实现两种不同的功能,或者您把这两种不同的功能密切地联系在一起;当您的OrderID格式改变时,您的SSN验证代码将会中断。所以要当心这种耦合,而且不要把彼此之间没有任何关系却类似的代码组合在一起。
封装经常修改的代码
EncapsulateWhatChanges
在软件领域永远不变的是“变化”,所以把您认为或怀疑将来要被修改的代码封装起来。这种面向对象设计模式的优点是:易于测试和维护恰当封装的代码。如果您在用编程,那么请遵守以下原则:变量和方法的访问权限默认设置为私有,并且逐步放开它们的访问权限,例如从“private”到“protected”、“notpublic”。中的一些设计模式使用了封装,工厂设计模式就是一个例子,它封装了创建对象的代码而且提供了以下灵活性:后续生成新对象不影响现有的代码。
打开/关闭设计原则
OpenClosedDesignPrinciple
类、方法/函数应当是对扩展(新功能)开放,对修改闭合。这是另外一个优雅的SOLID设计原则,以防止有人修改通过测试的代码。理想情况下假如您添加了新功能,那么您的代码要经过测试,这就是打开/关闭设计原则的目标。顺便说一句,SOLID中的字母“O”指的是打开/关闭设计原则。
单一职责原则
SingleResponsibilityPrinciple(SRP)
单一职责原则是另外一个SOLID设计原则,SOLID中的字母“S”指的就是它。按照SRP,一个类修改的原因应当有且只有一个,或者一个类应当总是实现单一功能。如果您在中的一个类实现了多个功能,那么这些功能之间便产生了耦合关系;如果您修改其中的一个功能,您有可能就打破了这种耦合关系,那么就要进行另一轮测试以避免产生新的问题。
依赖注入/反转原则
DependencyInjectionorInversionprinciple
不要问框架的依赖注入功能将会给你带来什么益处,依赖注入功能在spring框架里已经很好的得到了实现,这一设计原则的优雅之处在于:DI框架注入的任何一个类都易于用模拟对象进行测试,并且更易于维护,因为创建对象的代码在框架里是集中的而且和客户端代码是隔离的。有多种方法可以实现依赖注入,例如使用字节码工具,其中一些AOP(面向切面编程)框架如切入点表达式或者spring里使用的代理。想对这种SOLID设计原则了解更多,请看IOC和DI设计模式中的例子。SOLID中的字母“D”指的就是这种设计原则。
优先使用组合而非继承
ForCompositionoverInheritance
如果可以的话,要优先使用组合而非继承。你们中的一些人可能为此争论,但我发现组合比继承更有灵活性。组合允许在运行时通过设置属性修改一个类的行为,通过使用多态即以接口的形式实现类之间的组合关系,并且为修改组合关系提供了灵活性。甚至Effective也建议优先使用组合而非继承。
里氏替换原则
LiskovSubstitutionPrincipleLSP
根据里氏替换原则,父类出现的地方可以用子类来替换,例如父类的方法或函数被子类对象替换应该没有任何问题。LSP和单一职责原则、接口隔离原则密切相关。如果一个父类的功能比其子类还要多,那么它可能不支持这一功能,而且也违反了LSP设计原则。为了遵循LSPSOLID设计原则,派生类或子类(相对父类比较)必须增强功能,而非减少。SOLID中的字母“L”指的就是LSP设计原则。
接口隔离原则
接口隔离原则指,如果不需要一个接口的功能,那么就不要实现此接口。这大多在以下情况发生:一个接口包含多种功能,而实现类只需要其中一种功能。接口设计是一种棘手的工作,因为一旦发布了接口,您就不能修改它否则会影响实现该接口的类。在中这种设计原则的另一个好处是:接口有一个特点,任何类使用它之前都要实现该接口所有的方法,所以使用功能单一的接口意味着实现更少的方法。
编程以接口(而非实现对象)为中心
编程总是以接口(而非实现对象)为中心,这会使代码的结构灵活,而且任何一个新的接口实现对象都能兼容现有代码结构。所以在中,变量、方法返回值、方法参数的数据类型请使用接口。这是许多程序员的建议,Effective以及headfirstdesignpattern等书也这样建议。
代理原则
不要期望一个类完成所有的功能,电脑培训>
摘 要:多媒体教学产生与发展使得教学手段、教学方式和教学效果均有一个质的改变和发展,尤其在程序设计语言类课程教学中,多媒体教学体现出特有优越性。但是,板书教学方式固有的诸多优点在该类课程教学中也存在特有的适应性。本文结合程序设计语言课程的教学实际,论述了多媒体教学的优势与局限性,并提出了板书教学在程序设计语言课中的高效性与特殊性,对多媒体教学环境下程序语言课的板书教学方法进行了简要剖析。文章对促进程序设计语言课程的板书与多媒体教学有机结合,提高整体教学效果具有一定借鉴意义。
关键词:多媒体教学 板书教学 高效性 特殊性 程序设计语言
当前多媒体教学已经成为高校普遍的课堂教学方式,PPT等广泛地代替了手写板书。尤其是对于程序设计语言类(如C语言、FORTRAN语言等)课程,因其自身特点几乎统一采用多媒体教学,且在各级学校对新教师必须采取板书教学的规定也将该类课程排除在外。然而,板书仍然是不可或缺的重要教学形式,在程序设计语言课中如何适时、适量、适形地采用板书教学,使其与多媒体教学相得益彰,以取得更优的教学效果?结合本人的教学经验,以C语言教学实践为例浅析该类课程的板书教学的理论与方法。
1多媒体教学在程序设计语言课中的优越性
11程序设计语言课程主要以大量实际程序实例来分析基本语法规则、程序设计方法及相关算法,由此在PPT上显示或者直接打开程序语言软件 *** 作,都可直观、形象、高效的将应用实例代码演示出来,降低了教师工作量、提高了教学效率。
12利用投影仪演示程序可直接在课堂上进行代码编写、调试,由此可便可辅助教师有意设计错误,先让学生看代码找错误,再运行程序查看错误信息。这种直观具体教学方式可更好地培养学生程序调试能力。
13利用多媒体可以扩大课堂信息量,可将复杂的算法及程序设计思路以较为直观的动画形式演示,提高了教学的趣味性和可读性,辅助学生理解知识要点,同时激发学生的学习兴趣、学习积极性,活跃课堂气氛。
多媒体在程序设计语言课中的这些优势是板书教学无法替代的。
2多媒体教学在程序设计语言课中的局限性
多媒体教学具有以上直观、形象、高效特点,但全程采用多媒体教学,也存在一定局限性,主要表现如下:
21多媒体课件教学在使用时重技术,轻情感,缺少人文关怀
在多媒体课件教学中,教师忽视课内教学的反馈,忽视学生与教师、学生与学生之间的情感交流,教师在鼠标、讲台之间不停忙碌,师生之间缺少必要的交流与互动,良好的教学效果难以实现。
22在程序设计语言课的授课过程中,前后的内容是互相关联的,对新知识的理解和掌握常常需要以前面的内容为基础
例如:在后期函数、结构体等章节的教学过程中,随着演示程序的复杂化,会不断应用到前面学到的基本数据结构、程序控制语句等知识点,如果不利用板书,只是口头回忆前面的讲授内容,学生的接受效果会差一些,尤其对前面内容掌握不好的学生来说,就更加吃力。
23 “眼过千遍,不如手过一遍”
教师在播放课件时,画面来回跳转,学生的思路跳跃式行进,连贯的思维过程常常会被打断,难以及时做好笔记。程序设计语言的一些代码、程序和算法等知识点是要求学生必须掌握的,但在多媒体教学时,学生一般想拷贝老师制作好的PPT而不再做课堂笔记,导致上课时注意力不集中、没听懂,影响学生的听课效果。
3板书教学在程序设计语言课程中的特殊性
与其他课程相比,程序设计语言类课程因其自身特点几乎统一采用多媒体教学,板书在此类课程中的应用也具有一定的特殊性。
31授课方式灵活性
区别与常规技术课程,程序设计语言是以程序代码及程序设计流程为主要授课载体,授课过程会不可避免的涉及到大量程序代码和设计逻辑,板书的应用就显示出灵活性,它既可以以逻辑提纲式点拨、引导学生编程思路;也可逐条书写重点程序代码,加深学生对层序结构及程序语句的领悟。
32授课过程互动性
程序设计语言类课程由于其自身特点,每节课均会涉及大量复杂的程序设计逻辑,需要高度精力投入,然而枯燥的程序代码往往容易诱发学生注意力分散,跟不上进度,尤其是在多媒体教学中,更是如此。而板书教学,可自由灵活控制授课进度,随意书写关键点,适时的制造包袱,不断地进行互动,提高学生听课积极性和注意力。
33授课容量局限性
毕竟程序设计代码是程序设计语言类课程的主体,尤其课程进行到后期,每节课需要书写大量程序示例,如果单靠板书就会出现若书写过多就耽误授课进度,若授课过少就会影响学生对前后知识的连贯学习,因此板书在此类课程授课中具有内容容量的局限性。
4程序设计语言课板书教学方法浅析
现以程序设计语言C为例,浅析板书在该课程中的应用方法。
41全板书授课
该种授课方式适合基本概况、算法、数据类型、运算符与表达式的教学。
该些章节是这门课程的前三章,是学生刚刚接触该门课程的开头,且其知识点琐碎,相关性差,暂无大批程序语句出现。授课过程可按照进度将所有知识点总结提炼,形成框架,且在授课过程中注重在提纲之外在空闲板面进行知识点举例。
比如在正反码的书写过程中,可将书写的步骤写在板面左边知识点大纲上,在板书右边书写相应的二进制数字代码,这样不仅可帮助学生掌握重点,也可促进学生对该知识点的深入领悟。
42板书为纲辅助投影或简单ppt投影
该种授课方式适合程序结构语言控制部分章节。
该些章节是这门课的关键中间环节,需要学生注意力集中,领悟控制语句对程序运行顺序的控制规律。授课过程可将关键的核心控制语句及控制定义以提纲形式书写在板面上,并在空白处辅助简单程序的书写和讲解,其后为更好的让学生理解、掌握,可将一起讨论写好的程序投影出来,这样在后续讲解过程中可随时回顾。
比如在if选择语句嵌套的讲解中,可在提纲部分书写关键的嵌套语句和程序运行方式,且在书写每一条关键语句时候都在板书上书写一个具体实例,以帮助学生理解,书写完每一个示例都将其投影出来并保持住,直至该知识点讲授完毕,再一起回顾书写的知识点提纲、投影的示例代码(也是书写过的),这样既可把握住学生兴趣,也可促进知识点的整体把握。
43以板书为纲辅助ppt程序书写及实际程序演示
该种方法适合后续数组、函数、指针等复杂的程序设计章节学习。
该些章节既涉及到新知识的学习,又需要前面知识点的支撑,是一个复杂、综合的学习过程。授课过程中先将需要学习的新知识点以提纲形式随着讲解进度将关键知识点书写上,配合ppt将程序逐步演示出来,同时穿插关键语句的板书书写讲解,最后将书写的程序实际演示运行结果,以此可即可帮助学生把握知识点主体框架,又可清楚程序全貌,同时还能掌握关键点的书写规律,提高学习效果。
比如在讲授二维数组的规定输出时候,可将二维数组的控制规律以提纲形式书写在板书上,配合板书图形分析,进而用ppt逐步演示程序书写过程,并对控制数组输出地关键语句在板书上逐条讲解书写,最后在实际软件中演示运行结果,而后可适当变化输出要求,一块讨论书写关键语句,此时就可将讨论出的语句直接书写在电脑程序代码上,运行显示结果。如此即可帮助学生透彻的掌握重点,又可有力激发学生兴趣,提高学生注意力。
5结论
在当今信息化时代,教师在开展教学工作时,应当重视多媒体教学方式,尤其是程序设计语言类课程,但还应当充分发挥板书教学的优点,正确的认识板书教学的高效性和特殊性,适时针对讲授内容开展灵活多变的板书与多媒体相结合的教学方式,各取所长,优势互补,才能取得更好的教学效果。
参考文献:
[1]李远辉.课堂板书及其在多媒体教学中的运用[J].科技咨询,2010,(24):203.
[2]李蓓.程序设计语言课教学方法的探讨[J].计算机与网络,2010:185-188.
[3]邱建林,刘维富,顾晖,等.C语言程序设计教学的研究与实践.电气电子教学学报,2003,25(3):96-98.
[4]王丹玲.提高C语言程序设计课教学质量的探讨[J].辽宁教育行政学院学报,2005,22(12):72,74.□
以上就是关于面向对象程序设计具有哪些特性呢全部的内容,包括:面向对象程序设计具有哪些特性呢、怎么理解面向对象程序设计、什么是面向对象程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)