116 lines
3.3 KiB
Plaintext
116 lines
3.3 KiB
Plaintext
|
[TOC]
|
|||
|
|
|||
|
# 地址
|
|||
|
|
|||
|
[Google Java编程风格指南](http://www.hawstein.com/posts/google-java-style.html)
|
|||
|
|
|||
|
# 命名约定
|
|||
|
|
|||
|
在 Google 其它编程语言风格中使用的特殊前缀或后缀,如 name_ , mName , s_name 和 kName ,在 Java 编程风格中都不再使用。
|
|||
|
|
|||
|
**1. 包名**
|
|||
|
|
|||
|
包名全部小写,连续的单词只是简单地连接起来,不使用下划线。
|
|||
|
|
|||
|
**2. 类名**
|
|||
|
|
|||
|
类名都以 UpperCamelCase 风格编写。
|
|||
|
|
|||
|
类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。
|
|||
|
|
|||
|
测试类的命名以它要测试的类的名称开始,以 Test 结束。
|
|||
|
|
|||
|
**3. 方法名**
|
|||
|
|
|||
|
方法名都以 lowerCamelCase 风格编写。
|
|||
|
|
|||
|
方法名通常是动词或动词短语。
|
|||
|
|
|||
|
下划线可能出现在JUnit测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是: test<MethodUnderTest>\_<state> ,例如 testPop_emptyStack 。 并不存在唯一正确的方式来命名测试方法。
|
|||
|
|
|||
|
**4. 常量名**
|
|||
|
|
|||
|
常量名命名模式为 CONSTANT_CASE ,全部字母大写,用下划线分隔单词。
|
|||
|
|
|||
|
每个常量都是一个静态final字段,但不是所有静态final字段都是常量。
|
|||
|
|
|||
|
**5. 非常量字段名**
|
|||
|
|
|||
|
非常量字段名以 lowerCamelCase 风格编写。
|
|||
|
|
|||
|
**6. 参数名**
|
|||
|
|
|||
|
参数名以 lowerCamelCase 风格编写。
|
|||
|
|
|||
|
**7. 局部变量名**
|
|||
|
|
|||
|
局部变量名以 lowerCamelCase 风格编写
|
|||
|
|
|||
|
**8. 类型变量名**
|
|||
|
|
|||
|
类型变量可用以下两种风格之一进行命名:
|
|||
|
|
|||
|
- 单个的大写字母,后面可以跟一个数字(如:E, T, X, T2)。
|
|||
|
- 以类命名方式,后面加个大写的 T (如:RequestT, FooBarT)。
|
|||
|
|
|||
|
**9. 驼峰式命名法**
|
|||
|
|
|||
|
1. 把短语转换为纯 ASCII 码,并且移除任何单引号。例如:"Müller’s algorithm" 将变成 "Muellers algorithm"。
|
|||
|
2. 把这个结果切分成单词,在空格或其它标点符号(通常是连字符)处分割开。
|
|||
|
3. 现在将所有字母都小写(包括缩写),然后将单词的第一个字母大写。
|
|||
|
4. 最后将所有的单词连接起来得到一个标识符。
|
|||
|
|
|||
|
```html
|
|||
|
Prose form Correct Incorrect
|
|||
|
------------------------------------------------------------------
|
|||
|
"XML HTTP request" XmlHttpRequest XMLHTTPRequest
|
|||
|
"new customer ID" newCustomerId newCustomerID
|
|||
|
"inner stopwatch" innerStopwatch innerStopWatch
|
|||
|
"supports IPv6 on iOS?" supportsIpv6OnIos supportsIPv6OnIOS
|
|||
|
"YouTube importer" YouTubeImporter
|
|||
|
YoutubeImporter*
|
|||
|
```
|
|||
|
|
|||
|
# 编程实践
|
|||
|
|
|||
|
- 覆盖的方法加上 @Override 注释。
|
|||
|
|
|||
|
- 异常不能忽视,否则需要在 catch 中注释说明。
|
|||
|
|
|||
|
```
|
|||
|
try {
|
|||
|
int i = Integer.parseInt(response);
|
|||
|
return handleNumericResponse(i);
|
|||
|
} catch (NumberFormatException ok) {
|
|||
|
// it's not numeric; that's fine, just continue
|
|||
|
}
|
|||
|
return handleTextResponse(response);
|
|||
|
```
|
|||
|
|
|||
|
- 使用类调用静态成员
|
|||
|
|
|||
|
```java
|
|||
|
Foo.aStaticMethod();
|
|||
|
```
|
|||
|
|
|||
|
- 禁止使用 finalize()
|
|||
|
|
|||
|
# Javadoc
|
|||
|
|
|||
|
基本格式如下:
|
|||
|
|
|||
|
```java
|
|||
|
/**
|
|||
|
* Multiple lines of Javadoc text are written here,
|
|||
|
* wrapped normally...
|
|||
|
*/
|
|||
|
```
|
|||
|
|
|||
|
或者单行形式:
|
|||
|
```
|
|||
|
/** An especially short bit of Javadoc. */
|
|||
|
```
|
|||
|
|
|||
|
标准的 Javadoc 标记按以下顺序出现:@param, @return, @throws, @deprecated,前面这4种标记如果出现,描述都不能为空。当描述无法在一行中容纳,连续行需要至少再缩进4个空格。
|
|||
|
|