新手入门:写Java程序的三十个根本规则
(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(),其中蕴含了用于测试那个类的代码。为利用一个名目中的类,咱们没必要删除测试代码。若停止了任何方式的改动,可方便地前往测试。这些代码也可作为如何利用类的一个示例利用。
(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块,末尾肃清工作。