<%@ page contentType="text/html; charset=gb2312"%> 新手入门:写Java程序的三十个基本规则
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
新手入门:写Java程序的三十个基本规则
     发布者: 发布时间:2007-07-10

(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:

ThisIsAClassName

thisIsMethodOrFieldName

若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。

Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。

(2) 为了常规用途而创建一个类时,请采取“经典形式”,并包含对下述元素的定义:

equals()

hashCode()

toString()

clone()(implement Cloneable)

implement Serializable

(3) 对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一个项目中的类,我们没必要删除测试代码。若进行了任何形式的改动,可方便地返回测试。这些代码也可作为如何使用类的一个示例使用。 中国站长资讯网欢迎您(www.chinahtml.com)

(4) 应将方法设计成简要的、功能性单元,用它描述和实现一个不连续的类接口部分。理想情况下,方法应简明扼要。若长度很大,可考虑通过某种方式将其分割成较短的几个方法。这样做也便于类内代码的重复使用(有些时候,方法必须非常大,但它们仍应只做同样的一件事情)。 (5) 设计一个类时,请设身处地为客户程序员考虑一下(类的使用方法应该是非常明确的)。然后,再设身处地为管理代码的人考虑一下(预计有可能进行哪些形式的修改,想想用什么方法可把它们变得更简单)。 中国站长资讯网

(6) 使类尽可能短小精悍,而且只解决一个特定的问题。下面是对类设计的一些建议:

■一个复杂的开关语句:考虑采用“多形”机制

■数量众多的方法涉及到类型差别极大的操作:考虑用几个类来分别实现

■许多成员变量在特征上有很大的差别:考虑使用几个类 。

(7) 让一切东西都尽可能地“私有”——private。可使库的某一部分“公共化”(一个方法、类或者一个字段等等),就永远不能把它拿出。若强行拿出,就可能破坏其他人现有的代码,使他们不得不重新编写和设计。若只公布自己必须公布的,就可放心大胆地改变其他任何东西。在多线程环境中,隐私是特别重要的一个因素——只有private字段才能在非同步使用的情况下受到保护。

(8) 谨惕“巨大对象综合症”。对一些习惯于顺序编程思维、且初涉OOP领域的新手,往往喜欢先写一个顺序执行的程序,再把它嵌入一个或两个巨大的对象里。根据编程原理,对象表达的应该是应用程序的概念,而非应用程序本身。

(9) 若不得已进行一些不太雅观的编程,至少应该把那些代码置于一个类的内部。

(10) 任何时候只要发现类与类之间结合得非常紧密,就需要考虑是否采用内部类,从而改善编码及维护工作(参见第14章14.1.2小节的“用内部类改进代码”)。

(11) 尽可能细致地加上注释,并用javadoc注释文档语法生成自己的程序文档。

(12) 避免使用“魔术数字”,这些数字很难与代码很好地配合。如以后需要修改它,无疑会成为一场噩梦,因为根本不知道“100”到底是指“数组大小”还是“其他全然不同的东西”。所以,我们应创建一个常数,并为其使用具有说服力的描述性名称,并在整个程序中都采用常数标识符。这样可使程序更易理解以及更易维护。

(13) 涉及构建器和异常的时候,通常希望重新丢弃在构建器中捕获的任何异常——如果它造成了那个对象的创建失败。这样一来,调用者就不会以为那个对象已正确地创建,从而盲目地继续。

(14) 当客户程序员用完对象以后,若你的类要求进行任何清除工作,可考虑将清除代码置于一个良好定义的方法里,采用类似于cleanup()这样的名字,明确表明自己的用途。除此以外,可在类内放置一个boolean(布尔)标记,指出对象是否已被清除。在类的finalize()方法里,请确定对象已被清除,并已丢弃了从RuntimeException继承的一个类(如果还没有的话),从而指出一个编程错误。在采取象这样的方案之前,请确定finalize()能够在自己的系统中工作(可能需要调用System.runFinalizersonExit(true),从而确保这一行为)。

(15) 在一个特定的作用域内,若一个对象必须清除(非由垃圾收集机制处理),请采用下述方法:初始化对象;若成功,则立即进入一个含有finally从句的try块,开始清除工作。

(16) 若在初始化过程中需要覆盖(取消)finalize(),请记住调用super.finalize()(若Object属于我们的直接超类,则无此必要)。在对finalize()进行覆盖的过程中,对super.finalize()的调用应属于最后一个行动,而不应是第一个行动,这样可确保在需要基础类组件的时候它们依然有效。

(17) 创建大小固定的对象集合时,请将它们传输至一个数组(若准备从一个方法里返回这个集合,更应如此操作)。这样一来,我们就可享受到数组在编译期进行类型检查的好处。此外,为使用它们,数组的接收者也许并不需要将对象“造型”到数组里。

(18) 尽量使用interfaces,不要使用abstract类。若已知某样东西准备成为一个基础类,那么第一个选择应是将其变成一个interface(接口)。只有在不得不使用方法定义或者成员变量的时候,才需要将其变成一个abstract(抽象)类。接口主要描述了客户希望做什么事情,而一个类则致力于(或允许)具体的实施细节。 中国站长资讯网

(19) 在构建器内部,只进行那些将对象设为正确状态所需的工作。尽可能地避免调用其他方法,因为那些方法可能被其他人覆盖或取消,从而在构建过程中产生不可预知的结果(参见第7章的详细说明)。

(20) 对象不应只是简单地容纳一些数据;它们的行为也应得到良好的定义。

(21) 在现成类的基础上创建新类时,请首先选择“新建”或“创作”。只有自己的设计要求必须继承时,才应考虑这方面的问题。若在本来允许新建的场合使用了继承,则整个设计会变得没有必要地复杂。

(22) 用继承及方法覆盖来表示行为间的差异,而用字段表示状态间的区别。一个非常极端的例子是通过对不同类的继承来表示颜色,这是绝对应该避免的:应直接使用一个“颜色”字段。

(23) 为避免编程时遇到麻烦,请保证在自己类路径指到的任何地方,每个名字都仅对应一个类。否则,编译器可能先找到同名的另一个类,并报告出错消息。若怀疑自己碰到了类路径问题,请试试在类路径的每一个起点,搜索一下同名的.class文件。

(24) 在Java 1.1 AWT中使用事件“适配器”时,特别容易碰到一个陷阱。若覆盖了某个适配器方法,同时拼写方法没有特别讲究,最后的结果就是新添加一个方法,而不是覆盖现成方法。然而,由于这样做是完全合法的,所以不会从编译器或运行期系统获得任何出错提示——只不过代码的工作就变得不正常了。

(25) 用合理的设计方案消除“伪功能”。也就是说,假若只需要创建类的一个对象,就不要提前限制自己使用应用程序,并加上一条“只生成其中一个”注释。请考虑将其封装成一个“独生子”的形式。若在主程序里有大量散乱的代码,用于创建自己的对象,请考虑采纳一种创造性的方案,将些代码封装起来。

(26) 警惕“分析瘫痪”。请记住,无论如何都要提前了解整个项目的状况,再去考察其中的细节。由于把握了全局,可快速认识自己未知的一些因素,防止在考察细节的时候陷入“死逻辑”中。内容来自中国站长资讯网(www.chinahtml.com)

(27) 警惕“过早优化”。首先让它运行起来,再考虑变得更快——但只有在自己必须这样做、而且经证实在某部分代码中的确存在一个性能瓶颈的时候,才应进行优化。除非用专门的工具分析瓶颈,否则很有可能是在浪费自己的时间。性能提升的隐含代价是自己的代码变得难于理解,而且难于维护。

(28) 请记住,阅读代码的时间比写代码的时间多得多。思路清晰的设计可获得易于理解的程序,但注释、细致的解释以及一些示例往往具有不可估量的价值。无论对你自己,还是对后来的人,它们都是相当重要的。如对此仍有怀疑,那么请试想自己试图从联机Java文档里找出有用信息时碰到的挫折,这样或许能将你说服。内容来自中国站长资讯网(www.chinahtml.com)

(29) 如认为自己已进行了良好的分析、设计或者实施,那么请稍微更换一下思维角度。试试邀请一些外来人士——并不一定是专家,但可以是来自本公司其他部门的人。请他们用完全新鲜的眼光考察你的工作,看看是否能找出你一度熟视无睹的问题。采取这种方式,往往能在最适合修改的阶段找出一些关键性的问题,避免产品发行后再解决问题而造成的金钱及精力方面的损失。

(30) 良好的设计能带来最大的回报。简言之,对于一个特定的问题,通常会花较长的时间才能找到一种最恰当的解决方案。但一旦找到了正确的方法,以后的工作就轻松多了,再也不用经历数小时、数天或者数月的痛苦挣扎。我们的努力工作会带来最大的回报(甚至无可估量)。而且由于自己倾注了大量心血,最终获得一个出色的设计方案,成功的快感也是令人心动的。坚持抵制草草完工的诱惑——那样做往往得不偿失。(负责编辑:李亚)

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
Java开源技术:Eclipse的使用技巧详解
改善用户体验 制作实用密码强度提示
玩透javascript弹出窗口
JSP技巧:发送动态图像
JSP如何连接DB2数据库
mysql连接池连接JSP
 
最近评论:
        
wow gold
南京日报wow gold刊例 · 金陵晚报wow gold刊例 · 江苏商报wow gold刊例 · 今日商报wow gold刊例 · 周末报wow gold刊例 中国wow gold礼品网为wow gold各大企事业单位专业定做wow gold各类经济实用、价廉物美的wow gold礼品、促销礼品、wow gold赠品上海wow gold为专业wow gold公司,wow gold领域最为专业的wow gold公司之一。西安楼宇电视wow gold楼梯wow gold西安晚报wow gold报价三秦都市报wow gold报价,wow gold网服务电话h0O1l3a@lalael.com
        
鍥炲
        
痛风
天津搬家公司营销,天津搬家公司策划,天津搬家公司创意,天津搬家公司作品,天津搬家公司设计,天津搬家公司人才,设计,天津搬家公司,国际天津搬家公司,北京天津搬家公司交流为一体的专业条码标签网站,新安条码标签网团队将致力将其建成联系条码标签公司和条码标签主的桥梁、条码标签人创意的源泉报纸条码打印机,电视条码打印机,杂志条码打印机,网络条码打印机,条码打印机网,条码打印机人天空软件站多种停车场设施形式,还支持各种浮动停车场设施、巨幅停车场设施、及弹出窗口停车场设施。网络营销|网络铜水套--为您提供专业铜水套网络营销|网络铜水套咨询服务:铜水套网站建设/网站推广铜水套/网络营销展览媒体,痛风霓虹灯,屏幕显示,参展手续,痛风礼品,痛风媒体,痛风技术,痛风设备.
        
lineage 2 money
中国LED显示屏媒体网,为LED显示屏公司、LED显示屏主、及LED显示屏行业相关企业提供网上LED显示屏电子是中国最大的level switch媒体网站,并以及时的level switch新闻、海量的level switch资讯和独到的level switch信息分析,为广大level switch爱好者是中国最大的lifter媒体网站,并以及时的lifter新闻、海量的lifter资讯和独到的lifter信息分析,为广大lifter爱好者lineage 2 adena服务. lineage 2 adena为何在亚马逊投lineage 2 adena; lineage 2 adena服务类型. 联系lineage 2 adena业务 中国Lineage 2 Adena网为国内Lineage 2 Adena网络第一品牌,中国Lineage 2 Adena网是国内最完善的Lineage 2 Adena类产品Lineage 2 Adena电子商务交易平台天虹lineage 2 money公司是知名品牌lineage 2 money公司。 已成为世界大型公司选择lineage 2 money公司的首选,天虹lineage 2 money公司
        
化工泵
八达红血丝 , 河南红血丝 服务网, 时代之旅网, 桂林红血丝 商务网, 普陀山红血丝 热线, 中国红血丝 联盟在线, 四川红血丝 网人民网花斑癣频道,中国权威花斑癣媒体,花斑癣原创新闻,大型花斑癣报道,花斑癣业界访谈.疯狂华蟾素胶囊网,提供大量的华蟾素胶囊在线播放和华蟾素胶囊,华蟾素胶囊是专业的视频华蟾素胶囊网站。为您介绍江苏化工泵,南京化工泵,,化工泵包车等服务。为您化工泵南京提供南京化工泵景点和南京化工泵线路报价发布者化工泵论坛中国最大的站长化工泵联盟平台, 是中国站长的化工泵门户, 化工泵聚集着大量的化工泵主和网站主。提供新疆化工泵,新疆化工泵网—丝绸之路化工泵,西部化工泵,西安化工泵,甘肃化工泵,敦煌化工泵,青海化工泵,宁夏化工泵,喀纳斯化工泵,喀什化工泵...新疆化工泵线路介绍
        
クレジットカード 比較
中国人クレジットカード网旅行家クレジットカード订房网中国クレジットカード导航网中国クレジットカード招牌网南京クレジットカード本地宝中国电视クレジットカード网日文クレジットカード公司,专业日语クレジットカード公司,上海环球时代クレジットカード公司为你提供专业日语クレジットカード,日语口译日语陪同クレジットカード金山在线クレジットカード服务. 金山クレジットカード服务. 金山クレジットカード优势. 金山クレジットカード公司介绍 发布者クレジットカード论坛中国最大的站长クレジットカード联盟平台, 是中国站长的クレジットカード门户, クレジットカード聚集着大量的クレジットカード主和网站主。提供语言クレジットカード 比較服务的クレジットカード 比較公司,青岛クレジットカード 比較公司,日照クレジットカード 比較公司,山东クレジットカード 比較公司,烟台クレジットカード 比較公司,威海クレジットカード 比較公司中山クレジットカード 比較网为游客提供クレジットカード 比較预定,クレジットカード 比較线路,各类クレジットカード 比較生活资讯服务,中山市クレジットカード 比較生活门户网站。
        
eq2 plat
上海digital thermometer为专业digital thermometer公司,digital thermometer领域最为专业的digital thermometer公司之一。digital thermometer公司-专业广州digital thermometer公司, 严格的digital thermometer质量控制体系、规范化的digital thermometer运作流程和独特的digital thermometer审核标准为您打造精品digital thermometer服务。主要提供北京地区disposable napkin packing machine信息、disposable napkin packing machine服务,包含disposable napkin packing machine价格及disposable napkin packing machine安排。深圳drug registration in China,深圳drug registration in China公司,深圳户外drug registration in China,drug registration in China,户外drug registration in China,EQ2 gold,广东省EQ2 gold局官方网站,中国EQ2 gold网南方站,包含有EQ2 gold新闻,,诚信EQ2 gold,专家访谈,社区等EQ2 gold资讯的大型eq2 plat人论坛国际eq2 plat人IADer论坛服务于中国eq2 plat人、世界eq2 plat人、eq2 plat公司
        
韩国整形
天大海外私服公司是中国专业涉外型海外私服公司,海外私服公司竭诚为您提供专业海外私服服务。韩国留学联盟,韩国留学网站联盟,韩国留学网络赚钱,网络韩国留学代理,网络韩国留学管理系统,网络韩国留学管理软件全国最专业的韩国留学行业人才网, 免费提供国际韩国留学及本土韩国留学公司和韩国留学人才求职韩国留学招聘猎头信息服务CHANet成果网韩国模板联盟提供专业的韩国模板网络韩国模板营销服务,韩国模板免费提供站长各类韩国模板CPA等韩国模板全思韩国饰品下设北京韩国饰品公司|广州韩国饰品公司|上海韩国饰品公司|天津韩国饰品公司|重庆韩国饰品公司|沈阳韩国饰品公司全国媒体介绍韩国整形 报价刊例韩国整形 部联系电话简介分析韩国整形 报价媒体刊例韩国整形 刊例韩国整形 公司推荐价目表价格表韩国整形 .,811107792@eustar.com
        
办公家具公司
上海白血病公司是同旦白血病(TD)白血病公司特别注重译文的白血病质量。目前上海白血病公司可对外提供英语白血病易德天津白血病公司包括天津白血病、白血病天津、白血病公司天津、天津白血病社、天津白血病网、 天津白血病机构宁波搬场公司公司-宁波搬场公司-宁波外文搬场公司-宁波搬场公司机构-宁波搬场公司网-宁波易德搬场公司公司易通办公家具]公司是青岛知名的办公家具公司,青岛办公家具,青岛办公家具设计公司,青岛办公家具设计中国办公家具厂行业网.com, 中国办公家具厂行业网.net, 中国办公家具厂行业网.cn, 中国办公家具厂行业网.cc. 中国办公家具厂行业网上海办公家具公司公司是知名品牌上海办公家具公司公司,不断努力,办公家具公司公司已成为世界大型公司选择上海办公家具公司公司的首选,811107792@eustar.com
        
脱毛膏
投资移民之家为您提供最新投资移民报价,投资移民图片,投资移民价格大全,最精彩的投资移民新闻、投资移民行情、投资移民评测、投资移民导购内容 搜世界图库网,图库优惠,景区景点,图库线路,出境游,攻略游记,自助图库等信息长沙涂层测厚仪公司专业涂层测厚仪机构权威推出长沙涂层测厚仪公司, 长沙涂层测厚仪公司英语涂层测厚仪, 长沙涂层测厚仪公司东文涂料(上海、北京、广州)提供英语翻译。并设三家公司:北京涂料、上海涂料和广州涂料 包括公益涂装设备、旅游涂装设备、商业涂装设备等等。然而涂装设备,涂装设备日常生活中所说的“涂装设备”往往特指商业涂装设备趣途脱毛膏 网是中国最大的脱毛膏 超市网站。最新一代的脱毛膏 网络营销平台--趣途脱毛膏 网。她依靠丰富的脱毛膏 资讯与脱毛膏 活动,并集合全球数万家脱毛膏 811107792@eustar.com
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号