|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。
第二课主要范式(3)
2.3对象范式——平易近主制社会的编程法例
平易近为贵,社稷次之,君为轻 ——《孟子·经心下》
关头词:编程范式,OOP,面向对象,历程式编程
择要:OOP简谈
?发问
OOP是一种特别的命令式吗?
OOP的基础头脑是甚么?
OOP究竟幸亏那里?
OOP将要金瓯无缺吗?
历程式编程与OOP在计划理念上有甚么差别?
:解说
短憩以后,引号刻不容缓地问:“面向对象的范式应当是一种特别的命令式吧?”
“面向对象?”冒号咕哝着,“临时称之为OO或对象式吧,既不别具一格,也不耳食之言。在回覆你的成绩之前,请先回覆我的:甚么是OOP?”
引号应对如流:“OOP(Object-Orientedprogramming)是一种盘算机编程形式,它以对象作为成绩空间的基础元素,使用对象和对象间的互相感化来计划程序。所谓对象,是实践成绩中实体的笼统,具有必定的属性和功效。OOP的三个基础特征是:封装性、承继性和多态性。所谓封装性就是——”
冒号作了个停息的手势:“OOP的的基础特征信任人人早就耳熟能详了,那末依据你方才的界说,可否得出OOP必定是命令式的结论?”
引号歪头想了一阵,答道:“从界说上仿佛其实不能得出,岂非C++、Java、C#不是命令式的吗?”
冒号回覆:“固然是,但这无妨碍Clos成为OO版的Lisp,而Prolog也有很多融进OO特性的扩大,如VisualProlog、Logtalk等。OOP固然是在命令式的基本上开展起来的,但其中心头脑可泛化为:以数据为中央构造逻辑,将体系视为互相感化的对象汇合,并使用承继与多态来加强重用性。这类头脑也能使用到函数式和逻辑式中,只不外对象的办法从命令式中的历程分离换成函数式中的函数和逻辑式中的断言而已。大抵说来,命令式、函数式和逻辑式相互平行,而OOP与它们正交。”
问号发问:“OOP已成为一种潮水,上堂课枚举的十二种盛行言语中只要C不是OO的,这是不是意味着OOP将要金瓯无缺?”
“严厉说来,VB(VB.NET除外)和JavaScript也不是OO的,只是基于对象的(ObjectBased)[1]。”冒号改正道,“至于OOP是不是会金瓯无缺,谜底是不是定的。起首,与能独当一面的三类最基础的范式分歧,地道的OOP是不存在的[2],必需分离其他范式;其次,世上没有包治百病的万灵丹方,OOP也不破例。用软件业的行话来讲:没有银弹(Nosilverbullet)[3]。OOP最合用于年夜型庞大的、交互式的、特别是与实际天下亲切相干的体系,但在小型使用、数学盘算、标记处置等方面并没有上风。必要指出的是,言语和范式的盛行,与至公司撑持和贸易推进是亲切相干的。有人说OOP实际上是MOP(Money-OrientedProgramming),即以款项为导向的。虽有过激之嫌,但有履历的股平易近都晓得,有主力运作的股票老是涨得快一些的。固然OOP能盛行,自有独到的地方,谁能说说它究竟幸亏那里?”
逗号抢答:“OOP能进步软件可重用性、可扩大性和天真性。”
冒号反问:“为何历程式编程的可重用性、可扩大性和天真性就差呢?”
感应来者不善,逗号有点发虚:“由于OOP具有信息埋没、承继和多态的特性。”
冒号其实不买帐:“起首,将可重用性、可扩大性和天真性与OOP划等号,是只见树木,不见丛林——那是一切范式和言语的配合方针。其次,以C言语为例,信息埋没可用关头字static来完成;承继可用分解(composition)来取代;多态固然坚苦些,也有变通之法。更况且这些只是手腕而非目标,只需计划公道,C程序一样具有可重用性、可扩大性和天真性,功能效力还更优胜。即便在OOP日趋流行的明天,C的占据率一直稳踞前线,很多年夜型庞大软件如操纵体系、数据库等仍以C为主,这足以证实其仍堪年夜用。”
<p>
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。 |
|