没有合适的资源?快使用搜索试试~ 我知道了~
首页Google Java Style 中文版
资源详情
资源评论
资源推荐
Google Java Style 中文版
一、介绍
本文档为 Google Java 编程规范的完整定义。依照此规范编写的 Java 源码文
件可以被称为 Google Style。
和其他编程规范指南一样,规范不仅包括了代码的结构美学,也包括了其他一
些业界约定俗成的公约和普遍采用的标准。本文档中的规范基本都是业界已经
达成共识的标准,我们尽量避免去定义那些还存在争议的地方。
1.1 术语说明
本文档除非特殊说明,否则:
a、class(类)统指普通的 class 类型、enum 枚举类型、interface 类型和
annotation 类型。
b、comment(注释)总是指 implementationcomments(实现注释,/*
*/)。我们不使用“文档注释”这样的说法,而会直接说 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
StringunitAbbrev="μs"; Best: perfectly clear even without a comment.
StringunitAbbrev="\u03bcs";// "μs" Allowed, but there's no reason to do this.
StringunitAbbrev="\u03bcs";// Greek letter mu, "s" Allowed, but awkward and prone to mistakes.
StringunitAbbrev="\u03bcs"; Poor: the reader has no idea what this is.
return'\ufe7'+content;// byte order mark Good: use escapes for non-printable characters, and comment if necessary.
注意:不要因为担心一些程序无法正常处理费 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 节中讲到数组初始化,
所有的数组初始化都可以被认为是一个块状结构(非强制)。
剩余18页未读,继续阅读
swallowfeiflying
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- 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
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5