`
isiqi
  • 浏览: 16034443 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java编码规范_文件组织

阅读更多

最近,对部门的java编码规范进行了整顿,写了本文档供大家参考,请指正。

1. 为什么要制订编码规范

好的代码风格不仅能提高可读性,而且会使代码更健壮,更为重要的是在修改时不容易出错。在现代软件开发中,维护工作会占用80%的时间,而且开发者和维护者通常不是同一个程序员。这意味着你经常要阅读和修改他人开发的程序,他人也同样可能需要阅读和修改你开发的程序。既然如此,大家何不遵守一致的JAVA编码规范,把这利人利己的事情作好呢?

2. 文件组织(File Organization)

一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。超过2000行的程序难以阅读,应该尽量避免。每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。

2.1 开头注释(Beginning Comments)

所有的java文件在开头都应有注释,列出类名、版本信息、日期和版权声明:

/*

* Classname

*

* Version information

*

* Date

*

* Copyright notice

*/

2.2 包和引入语句(Package and Import Statements)

在多数Java源文件中,第一个非注释行是包语句。在它之后可以跟 import 语句。import中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。例如:

package java.awt;

import java.awt.peer.CanvasPeer;

2.3 (Class)

首先是类的注释,一般是用来解释类的。

/**

* A class representing a set of packet and byte counters

* It is observable to allow it to be watched, but only

* reports changes when the current set is complete

*/

接下来是类定义,包含了在不同的行的 extends implements

public class CounterSet extends Observable implements Cloneable{}

2.4 类的成员变量(Class Fields)

/**

* Packet counters

*/

protected int[] packets;

public 的成员变量必须生成文档(JavaDoc)procetedprivate package 定义的成员变量如果名字含义明确的话,可以没有注释。

2.5 存取方法

接下来是类变量的存取的方法。它只是简单的用来将类的变量赋值获取值的话,可以简单的写在一行上,其它的方法不要写在一行上。

/**

* Get the counters

* @return an array containing the statistical data. This array has been

* freshly allocated and can be modified by the caller.

*/

public int[] getPackets() { return copyArray(packets, offset); }

public int[] getBytes() { return copyArray(bytes, offset); }

public int[] getPackets() { return packets; }

public void setPackets(int[] packets) { this.packets = packets; }

2.6 构造函数

接下来是构造函数,它应该用递增的方式写(比如:参数多的写在后面)。访问类型 ("public", "private" .) 任何 "static", "final" "synchronized" 应该在一行中,并且方法和参数另写一行,这样可以使方法和参数更易读。

public CounterSet(int size){

this.size = size;

}

2.7 克隆方法

如果这个类是可以被克隆的,那么下一步就是 clone 方法:

public Object clone() {

try{

CounterSet obj = (CounterSet)super.clone();

obj.packets = (int[])packets.clone();

obj.size = size;

return obj;

}catch(CloneNotSupportedException e) {

throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage());

}

}

2.8 类方法

下面开始写类的方法:

/**

* Set the packet counters

* (such as when restoring from a database)

*/

protected final void setArray(int[] r1, int[] r2, int[] r3, int[] r4) throws illegalArgumentException

{

//

// Ensure the arrays are of equal size

//

if (r1.length != r2.length || r1.length != r3.length || r1.length != r4.length){

throw new IllegalArgumentException("Arrays must be of the same size");

}

System.arraycopy(r1, 0, r3, 0, r1.length);

System.arraycopy(r2, 0, r4, 0, r1.length);

}

2.9 toString 方法

无论如何,每一个类都应该定义 toString 方法:

public String toString() {

String retval = "CounterSet: ";

for (int i = 0; i < data.length(); i++) {

retval += data.bytes.toString();

retval += data.packets.toString();

}

return retval;

}

2.10 main 方法

如果main(String[]) 方法已经定义了, 那么它应该写在类的底部.

分享到:
评论

相关推荐

    Java语言编码规范

    Java语言编码规范 1 介绍(INTRODUCTION) 3 1.1 为什么要有编码规范(WHY HAVE CODE CONVENTIONS) 3 1.2 版权声明(ACKNOWLEDGMENTS) 3 2 文件名(FILE NAMES) 4 2.1 文件后缀(FILE SUFFIXES) 4 2.2 常用文件名(COMMON ...

    Java语言编码规范[含书签]

    1.1 为什么要有编码规范 ? 1.2 版权声明 2 文件名 ? 2.1 文件后缀 ? 2.2 常用文件名 3 文件组织 ? 3.1 Java源文件 o 3.1.1 开头注释 o 3.1.2 包和引入语句 o 3.1.3 类和接口...

    Java语言编码规范(Java Code Conventions) txt版

    3 文件组织(File Organization) 4 缩进排版(Indentation) 5 注释(Comments) 6 声明(Declarations) 7 语句(Statements) 8 空白(White Space) 9 命名规范(Naming Conventions) 10 编程惯例(Programming Practices) 11 ...

    java编程规范.doc

    java开发必须的规范 代码撰写规范 命名约定 Java文件的组织 编码格式 程序注释 一些建议

    java面试题目与技巧1

    │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料(源码,教材,ppt) │ 00s.jpg │ 10...

    java面试题及技巧4

    │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料(源码,教材,ppt) │ 00s.jpg │ 10...

    java面试题以及技巧

    │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料(源码,教材,ppt) │ 00s.jpg │ 10...

    CERT Oracle Secure Coding Standard for Java(后缀文件丢失,自行添加.rar查看)

    本书是关于Java编码时应遵守的一些安全规范,当然不可能全做到,但了解一下,还是很有必要的。 An essential element of secure coding in the Java programming language is a well- documented and enforceable ...

    java面试题及技巧3

    │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料(源码,教材,ppt) │ 00s.jpg │ 10...

    java面试题以及技巧6

    │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料(源码,教材,ppt) │ 00s.jpg │ 10...

    java 面试题 总结

    Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,...

    Android开发规范

    Android内部开发规范,编码规范 目录 1 介绍 5 1.1 目的 5 1.2 术语和定义 5 2 文件组织 5 2.1 JAVA包和源文件 5 2.1.1 开头注释 5 2.1.2 包和引入语句 6 2.1.3 类和接口声明 6 3 缩进排版 7 3.1 行长度 7 3.2 括号 ...

    java企业进销存管理系统课程设计报告

    系统编码规范 8 开发环境 10 数据库与数据表设计 10 数据库分析 10 创建数据库 11 创建数据表 11 创建项目 13 系统文件夹组织结构 13 公共类设计 15 Item公共类 15 数据模型公共类 15 Dao公共类 17 系统登录模块设计...

    java三大框架

    通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个 魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有...

    xml文件的详细介绍

    XML笔记 可扩展标记语言:xml 元语言 第一代语言: 机器语言 ...4)是一套使用规范规定限制的语言,指定者是W3C组织 5)xml的第一个正是版本是1998年2月10号,现 在使用的版本大部分是2000年10月推出

    计算机毕业设计-基于java银行帐目管理系统

    针对上述情况和要求,采用软件工程的开发原理,依据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试等过程开发了一个银行账目管理系统。采用JAVA作为编程语言,使用工具eclipse3.1设计实现了...

    apache-commons源码及jar文件

    Commons-JXPath 提供了使用Xpath语法操纵符合Java类命名规范的 JavaBeans的工具。也支持 maps, DOM 和其他对象模型。. Lang Commons-Lang 提供了许多许多通用的工具类集,提供了一些java.lang中类的扩展功能 Latka...

    超级有影响力霸气的Java面试题大全文档

     Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,...

    JSP 实现文件上传功能

    在开发JSP规范的过程中,太阳微系统公司(Sun Microsystems Inc.)与许许多多主要的Web服务器、应用服务器和开发工具供应商,以及各种各样富有经验的开发团体进行合作。其结果是找到了一种为应用和页面开发人员平衡了...

    java解析xml及4种常用解析比较

    正在考虑通过“Java规范请求JSR-102”将它最终用作“Java标准扩展”。从2000年初就已经开始了JDOM开发。 JDOM与DOM主要有两方面不同。首先,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了...

Global site tag (gtag.js) - Google Analytics