仓酷云
标题:
JAVA教程之《Java编程头脑》(第二版)第7章:多态(...
[打印本页]
作者:
莫相离
时间:
2015-1-18 11:46
标题:
JAVA教程之《Java编程头脑》(第二版)第7章:多态(...
对于一个大型项目,如果用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,实现无缝刷新。
作者:
深爱那片海
时间:
2015-1-21 14:03
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
柔情似水
时间:
2015-1-24 07:19
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者:
admin
时间:
2015-1-31 21:59
是一种使用者不需花费很多时间学习的语言
作者:
飘飘悠悠
时间:
2015-2-1 20:44
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者:
变相怪杰
时间:
2015-2-5 09:11
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
分手快乐
时间:
2015-2-8 17:20
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者:
不帅
时间:
2015-2-12 02:18
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者:
若相依
时间:
2015-2-16 08:12
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
莫相离
时间:
2015-2-23 12:53
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者:
愤怒的大鸟
时间:
2015-2-24 06:54
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者:
再见西城
时间:
2015-2-25 12:35
是一种为 Internet发展的计算机语言
作者:
透明
时间:
2015-3-7 12:07
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者:
第二个灵魂
时间:
2015-3-12 18:29
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者:
小妖女
时间:
2015-3-20 01:23
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者:
小女巫
时间:
2015-3-29 16:13
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
海妖
时间:
2015-4-1 04:08
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
兰色精灵
时间:
2015-4-3 00:57
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者:
精灵巫婆
时间:
2015-4-4 17:34
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者:
乐观
时间:
2015-4-9 05:00
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者:
因胸联盟
时间:
2015-4-10 05:53
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2