|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。编程封装,承继与多态是OOP的三个中心实质。
Method-call(函数挪用)绑定体例:
假如绑定举措产生于程序实行前(由编译器和毗连器完成),成为"先期绑定(earlybinding)"
绑定举措将在实行期才依据对象型别尔举行,称为前期绑定latebinding,大概实行期绑定run-timebinding,大概静态绑定dynamicbinding.
Java使用RTTI(run-timetypeidentification)手艺来撑持静态绑定.
上一章提到的final关头字润色函数有两个感化:1是从计划上思索克制该method被掩盖,2是从效力上思索告知编译器能够"封闭"静态绑定,因而编译器便得觉得finalmethodcall发生效力较佳的程序代码.不外年夜多半时分这么做其实不会为你的程序带来全体效能提拔.以是最好仍是处于计划上的思索来决意是不是利用final,而不要妄图用final来改良效力.
override与overload在语法上只要巨大的不同,可是语义上却108000里.必定要注重不要忽略写错了.假如这个成绩被埋躲于年夜型程序中,找出这个成绩的难度不可思议有多高!
abstract关头字:为了发生配合接口大概克制天生baseclass的实例,可使用笼统类.
含有abstractmethods(笼统函数)的类称为abstractclass.假如class含有单一或多个abstractmethods,便必要以关头字abstract作为这个class的润色词.不然编译器会收回毛病信息.
我们也能够将不含任何abstractmethods的class声明为abstract.假如你不但愿你所撰写的class被发生出任何实体,但这个class又不具有"具有abstractmethods"的实践来由时,这项性子便极其有效.
机关函数(Constructors)和多态(polymorphism)
在某个对象天生的时分全部承继链上的机关函数城市被挪用到,不然全部对象便没法建组成功.
承继与finalize()
当你利用组合手艺来写新的class,你不必要懊恼他的成员对象的停止(finalizing)成绩.每一个成员都是自力对象,因而会被渣滓接纳器接纳并停止.不外在承继干系中,假如你有某些出格的清算举措(cleanup)得在渣滓接纳时分举行,你就得在derivedclass中复写finalize(),同时万万别忘了挪用baseclass的finalize().即super.finalize().
plymorphicmehtods在机关函数中的举动
--是很难意料的:)动脑想想吧.这里是臭虫多产地带.而就看法而言,机关函数的义务是让对象从无到有(这很难被视为一样平常性事情).因而,撰写机关函数时,一条准绳是:"尽量复杂地让对象进进准确形态.假如能够的话,别挪用任何函数".机关函数中独一能够平安挪用的函数即是"baseclass中的final函数"(这对private函数来讲一样建立,由于他们生成就是final).此类函数没法被复写,也就不会发生含糊不清的成绩了.
地道承继(pureinheritance)vs.扩大(extension):
IS-avs.IS-like-a
向下转型(downcasting)与RTTI
RTTI比纯真的转型包括了更多内在.举例而言:有个办法可让你在实验向下转型之前,先获得你所处置的型别.
貌似后面的章节有提到:成员函数不准挪用机关函数,如今机关函数对成员函数的挪用上我们也只管加以限定了....
--------------------------------------------------------------------------------
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。 |
|