仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1308|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA教程之《Java编程头脑》(第二版)第7章:多态(...

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:46:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 08:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表