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个空格。
|
||
|