四个有害的Java编码习惯
程序中的编码风格让我们的编程工作变得轻松,特别是程序维护员,他们要经常阅读其他人编写的程序编码,这一点尤其突出。编码规范从根本上解决了程序维护员的难题;规范的编码阅读和理解起来更容易,也可以快速的不费力气的借鉴别人的编码。对将来维护你编码的人来说,你的编码越优化,他们就越喜欢你的编码,理解起来也就越快。
同样,高水平的编码风格(例如固定的封闭结构)目的在于改善设计和使编码更易于理解。事实上,最后有些人会认为改善设计和提高编码的易读性是一回事。
本文中你会看到一些流行的编码风格被面向读者的更易于接受的风格所替代。有人争论说这些风格都已经被大家广泛使用,不应该简单的为了达到读者的期望而抛弃。然而,读者的期待只是其中一方面的原因,不可能凌驾于所有因素之上。列出四种常见的问题:
1.对局域变量(local variables)、参数(method arguments)、字段(fields)这三种变量的命名没有区分:
对看编码的人来说,首先要弄清这些数据如何定义的?看一个类时,得弄清楚每个条目是局域变量?字段?还是参数?有必要使用一个简单的命名约定来定义这些变量,增加易读性。
很多权威机构规范过字段变量用以区分它与其它的变量,但这远远不够。可以把对字段的合理的命名约定逻辑也应用在参数上面。先看示例1:没有进行区分这三种变量的类定义,如下所示:
示例1:
public boolean equals (Object arg) {
if (! (arg instanceof Range)) return false;
Range other = (Range) arg;
return start.equals(other.start) && end.equals(other.end);}
在这个方法中,arg直接用argument的缩写,虽然大家一看就知道这是参数了,但这种命名方式却丢失了参数代表的对象本身 的含义。大家知道这 是参数,却不知道这是什么参数。如果方法的参数多一点,都按照arg1,arg2这样的方式命名,阅读代码 的时候很头疼。另外两个字段变量,start和 end,突然凭空而出,想一下才知道这应该是字段。当然,这个方法很短,造成的困难还不大,如果这个方法比较长的话,突然看到start和end两个变 量,一般会先在前面找一下是不是局部变量,然后才能确定是类的字段变量。
这个问题貌似微不足道,但为什么要让代码阅读者花费额外时间在这些琐碎的问题上呢?如果有个方案能让代码阅读者一目了然的明白变量是那种变量,为什 么不采用呢?就如同Steve McConnell在 《代码大全》中说的:"
相关文档:
c# java 区别
C#与JAVA的相同之处:由于C#与JAVA都是基于C++发展起来的,因此二者之间具有很多相似之处,具体如下:
1、C#和JAVA语言的编译结果是独立于计算机和编程语言的,可执行文件可以在受管理的执行
环境中执行;
2、C#和JAVA语言都是采用了自动的垃圾回收机制;
3、C#和JAVA语言都取消了指针操作;
4、C ......
文件名:Sjis.java
class Sj
{
public static void main(String[] args)
{
}
}
-------------------------------------
执行:
javac Sjis.java
Java Sj
、、、、、、、、、、、、、、、、、
文件名:Sjis.java
public class Sjis.java
{
public static ......
JAVA中用于处理字符串的“三兄弟”
JAVA中用于处理字符串常用的有三个类:java.lang.String、java.lang.StringBuffer、java.lang.StringBuilder,这三者的共同之处都是final类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用。 ......
AWT是Java中支持图形化用户界面GUI设计的一个工具集。AWT的API是独立于平台的,但设计出来的界面在各种平台的风格不同,利用API中各种类在特定平台下的对等组件peers提供具体平台下的实现。
欲建立一个GUI首先确定所用的组件及其布局,然后实现其事件的响应。组件的类型有多种,如常用的Button、CheckBox等,均为Component ......