JAVA网页编程之《Effective Java》进修条记(3)
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。条记四。类和接口
第12条:使类和成员的可会见才能最小
为了更好的完成信息埋没,下降各模块的耦合度,尽量地下降类和成员的会见才能是必需的。有一点出格关头,就是私有的静态final域几近全体是毛病的。客户能够修正如许的成员数组,应当改成公有的才是平安的。
第13条:撑持非可变类
使一个类成为非可变类必要做到以下5点:
1。不克不及供应任何会修正对象的办法
2。包管没有可被子类覆写的办法,能够经由过程使这个类为final来到达
3。使一切的成员变量都是final
4。使一切的成员变量都为公有
5。包管关于任何可变组件互斥会见
使一个类成为非可变类的的长处:
1。非可变类一般对照复杂,呵呵,这点很分明,他只要一个形态
2。非可变类一般是线程平安的
3。非可变类为其他对象供应了良多构件
4。非可变类最年夜的弱点在于关于每一个分歧的值(大概说形态),都请求一个独自的对象,在某些情形下你必要创立十分多的对象,功能上有很年夜影响
只管云云,全力使每个类成为非可变类应当是你寻求的方针。
第14条:复合优于承继
今天在看《面向对象编程导论》,提到“子类”和“子范例”是分歧的,交换准绳只合适于子范例干系,而一样平常编程言语只是思索了子类干系,子类申明了新类是承继自父类,而子范例夸大的是新类具有父类一样的举动(一定是承继)。那末,甚么时分才应当利用承继?那就是切合子范例干系的时分,大概一样平常所说的”isa"干系,你必需包管新类的举动与父类完整分歧!!!在任何利用父类的场所,新类应当体现一样的举动。
承继是OOP最主要的观点之一,可是承继也损坏了“封装性”,子类的完成要依附于父类的完成细节。以是,除下面提到的情形外,你应当只管用复合代替承继。(在覆写equals()办法也提到了这点)不然都属于承继的滥用,手艺的滥用已不足为奇了。
第15条:要末专门的计划,以利用承继,并给出文档申明,要末克制承继
这点跟下面一点夸大的一样。假如你要利用承继,请做好计划,在机关函数,clone(),readSolve()办法中不要挪用任何可变的办法,并写出具体的文档申明。实在最好的情形,仍是不利用的好!
第16条:接口优于笼统类
接口是界说具有多个完成的范例的最好路子,这点很分明,每一个详细类完成接口分歧。假如当演变的简单性比天真性更主要的时分,你应当利用笼统类。如,你要往笼统类中增添一个办法,任何完成这个笼统类的子类就主动具有这一个办法,而接口则不克不及,一切私有的接口的计划要十分审慎,并包管全力对外不做修正。在利用接口的时分,一样平常都计划一个笼统类作为“骨架”,这个笼统类应当尽量地小,只保存有最基础的功效。
第17条:接口只是被用于完成范例
你完成了一个接口,就代表这个类是该接口的范例。在使用我们常常看到在接口中界说静态私有的常量,这实际上是对接口的误用(汗,我是这类毛病的典范),如
publicinterfaceConstants{
publicintONE=1;
......
}如许的情势完整是毛病的,应当利用一个不克不及发生实例的类来取代
publicclassConstants{
privateCOnstants(){}//机关函数为公有
pulicstaticfinalintONE=1;
......
}
第18条:应当优先思索静态外部类
非静态类老是和内部类的实例相接洽,应当只管利用静态外部类。
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作, 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 Java是一种计算机编程语言,拥有跨平台、面向对java Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 是一种为 Internet发展的计算机语言 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
页:
[1]