没有合适的资源?快使用搜索试试~ 我知道了~
首页Google java style(中文版)
资源详情
资源评论
资源推荐
Google Java Style 中文版
原版地址:http://google-styleguide.googlecode.com/svn/trunk/javaguide.html
一、介绍
本文档为 Google Java 编程规范的完整定义。依照此规范编写的 Java 源码文件可以被称为
Google Style。
和其他编程规范指南一样,规范不仅包括了代码的结构美学,也包括了其他一些业界约定俗
成的公约和普遍采用的标准。本文档中的规范基本都是业界已经达成共识的标准,我们尽量
避免去定义那些还存在争议的地方。
1.1 术语说明
本文档除非特殊说明,否则:
a、class(类)统指普通的 class 类型、enum 枚举类型、interface 类型和 annotation 类型。
b、comment(注释)总是指 implementation comments(实现注释,/* */)。我们不使用“文
档注释”这样的说法,而会直接说 javadoc。
其他术语说明,将在文档中需要说明的地方单独说明。
1.2 文档说明
本文档中的代码并不一定符合所有规范。即使这些代码遵循 Google Style,但这不是唯一的
代码规范。例子中可选的格式风格也不应该作为强制执行的规范。
二、源码文件基础
2.1 文件名
源码文件名由它所包含的顶级 class 的类名(大小写敏感),加上.java 后缀组成。(除了
package-info.java 文件)。
2.2 文件编码:UTF-8
源码文件使用 UTF-8 编码。
2.3 特殊字符
2.3.1 空格字符
除了换行符外,ASCII 水平空白字符(0x20)是源码文件中唯一支持的空格字符。这意味着:
a、其他空白字符将被转义。
b、Tab 字符不被用作缩进控制。
2.3.2 特殊转义字符串
任何需要转义字符串表示的字符(例如\b, \t, \n, \f, \r, \', \\等),采用这种转义字符串的方式
表示,而不采用对应字符的八进制数(例如 \012)或 Unicode 码(例如 \u000a)表示。
2.3.3 非 ASCII 字符
对于其余非 ASCII 字符,直接使用 Unicode 字符(例如 ∞),或者使用对应的 Unicode 码
(例如 \u221e)转义,都是允许的。唯一需要考虑的是,何种方式更能使代码容易阅读和
理解。
注意:在使用 unicode 码转义,或者甚至是有时直接使用 unicode 字符的时候,添加一点说
明注释将对别人读懂代码很有帮助。
例子:
Example
String unitAbbrev = "μs";
Best: perfectly clear even withou
String unitAbbrev = "\u03bcs"; // "μs"
Allowed, but there's no reason to
String unitAbbrev = "\u03bcs"; // Greek letter mu, "s"
Allowed, but awkward and prone
String unitAbbrev = "\u03bcs";
Poor: the reader has no idea wha
return '\ufeff' + content; // byte order mark
Good: use escapes for non-printa
注意:不要因为担心一些程序无法正常处理费 ASCII 字符而不使用它,从而导致代码易读
性变差。如果出现这样的问题,应该由出现问题的程序去解决。
三、源码文件结构
源码文件按照先后顺序,由以下几部分组成:
a、License 或者 copyright 声明信息。(如果需要声明)
b、包声明语句。
c、import 语句。
d、class 类声明(每个源码文件只能有唯一一个顶级 class)。
每个部分之间应该只有一行空行作为间隔。
3.1 lincense 或者 copyright 的声明信息。
如果需要声明 lincense 或 copyright 信息,应该在文件开始时声明。
3.2 包声明
包声明的行,没有行长度的限制。单行长度限制(4.4 部分有详细说明,80 或 100)不适用
于包声明。
3.3 import 语句
3.3.1 不使用通配符 import
不应该使用通配符 import,不管是否是静态导入。
3.3.2 没有行长度限制
import 语句的行,没有行长度的限制。单行长度限制(4.4 部分有详细说明,80 或 100)不
适用于 import 语句所在行。
3.3.3 顺序和空行
import 语句应该被分为几个组,每个组之间由单行的空行隔开。分组的顺序如下:
a、所有的 static import 为归为一组。
b、com.google 包的 import 归为一组。
c、使用的第三方包的引用。每个顶级第三方包归为一组。第三方包之间按 ASCII 码排序。
例如:android, com, junit, org, sun
d、java 包归为一组。
e、javax 包归为一组。
同一组内的 import 语句之间不应用空行隔开。同一组中的 import 语句按 ASCII 码排序。
3.4 类声明
3.4.1 只声明唯一一个顶级 class
每个源码文件中只能有一个顶级 class。package-info.java 文件除外。
3.4.2 类成员顺序
类成员的顺序对代码的易读性有很大影响,但是没有一个统一正确的标准。不同的类可能有
不同的排序方式。
重要的是,每个 class 都要按照一定的逻辑规律排序。当被问及时,能够解释清楚为什么这
样排序。例如,新增加的成员方法,不是简单地放在 class 代码最后面,按日期排序不是按
逻辑排序。
3.4.2.1 重载方法:不应该分开
当一个类有多个构造函数,或者多个同名成员方法时,这些函数应该写在一起,不应该被其
他成员分开。
四、格式
术语说明:块状结构(block-like construct)指类、成员函数和构造函数的实现部分(花括
号中间部分)。注意,在后面的 4.8.3.1 节中讲到数组初始化,所有的数组初始化都可以被
认为是一个块状结构(非强制)。
4.1 花括号
4.1.1 花括号在需要的地方使用
剩余17页未读,继续阅读
komax_RD
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0