google java代码规范说明

google java编程风格指南说明

一,源文件

1,文件名
源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java。
(这一条在eclipse中会自动实现,如果java文件名和顶层的类名不同会报错)

2,文件编码:UTF-8
在eclipse中,windows->preferences->general->workspace中可以设置。(其他文件也在相应的位置可以设置)

3, 特殊字符

(1)空白字符
除了行结束符序列,ASCII水平空格字符(0x20,即空格)是源文件中唯一允许出现的空白字符,这意味着:
*所有其它字符串中的空白字符都要进行转义。
*制表符不用于缩进。

(2) 特殊转义序列
对于具有特殊转义序列的任何字符(\b, \t, \n, \f, \r, “, ‘及),我们使用它的转义序列,而不是相应的八进制(比如\012)或Unicode(比如\u000a)转义。

(3)对于剩余的非ASCII字符,是使用实际的Unicode字符(比如∞),还是使用等价的Unicode转义符(比如\u221e),取决于哪个能让代码更易于阅读和理解。
注:如果有需要,为了让代码更加简单明了,可以大胆的使用非ASCII字符,如果真的出现了问题,那我们就去调试。

二,源程序结构
1,一个源文件包含(按顺序地):
(1)许可证或版权信息(如有需要)

(2)package语句
在package语句中不换行。

(3)import语句
在import语句中不换行。
在import语句中不要出现通配符,如
import java.util.*;这种形式。

(4)一个顶级类(只有一个)

以上每个部分之间用一个空行隔开。
这里写图片描述

三,类声明
1,只有一个顶级类声明
每个顶级类都在一个与它同名的源文件中(当然,还包含.java后缀)。

例外:package-info.java,该文件中可没有package-info类。

2,类的成员顺序对易学性有很大的影响,但这也不存在唯一的通用法则。不同的类对成员的排序可能是不同的。 最重要的一点,每个类应该以某种逻辑去排序它的成员,维护者应该要能解释这种排序逻辑。比如, 新的方法不能总是习惯性地添加到类的结尾,因为这样就是按时间顺序而非某种逻辑来排序的。
比如,我们在学校类中已经存在了学生变量,学生上课方法和教师变量教师上课方法,如果我们想要加入一个叫做学生休息的方法,那么从逻辑上来说,就要把新的方法添加到学生上课方法前后。这样代码才会更加符合逻辑。

3,重载:永不分离
当一个类有多个构造函数,或是多个同名方法,这些函数/方法应该按顺序出现在一起,中间不要放进其它函数/方法。

四,格式
1,用小括号来限定组:
除非作者和reviewer都认为去掉小括号也不会使代码被误解,或是去掉小括号能让代码更易于阅读,否则我们不应该去掉小括号。 我们没有理由假设读者能记住整个Java运算符优先级表。

2,变量声明
(1)每次只声明一个变量
不要使用组合声明,比如int a, b;。

(2) 需要时才声明,并尽快进行初始化
不要在一个代码块的开头把局部变量一次性都声明了(这是c语言的做法),而是在第一次需要使用它时才声明。 局部变量在声明时最好就进行初始化,或者声明后尽快进行初始化。

3,数组
(1) 数组初始化:可写成块状结构
数组初始化可以写成块状结构,比如,下面的写法都是OK的:

new int[] {
  0, 1, 2, 3 
}

new int[] {
  0,
  1,
  2,
  3
}

new int[] {
  0, 1,
  2, 3
}

new int[]{0, 1, 2, 3}

4,switch语句
(1)Fall-through:注释
在一个switch块内,每个语句组要么通过break, continue, return或抛出异常来终止,要么通过一条注释来说明程序将继续执行到下一个语句组, 任何能表达这个意思的注释都是OK的(典型的是用// fall through)。这个特殊的注释并不需要在最后一个语句组(一般是default)中出现。示例:

switch (input) {
  case 1:
  case 2:
    prepareOneOrTwo();
    // fall through
  case 3:
    handleOneTwoOrThree();
    break;
  default:
    handleLargeNumber(input);
}

(2)default的情况要写出来
每个switch语句都包含一个default语句组,即使它什么代码也不包含。

五,命名约定

1,对所有标识符都通用的规则
标识符只能使用ASCII字母和数字,因此每个有效的标识符名称都能匹配正则表达式\w+。

2,标识符类型的规则

(1)包名
包名全部小写,连续的单词只是简单的连接起来,不适用下划线。

(2)类名
类名都以UpperCamelCase风格编写。
类名通常是名词或名词短语,接口名称优势可能是形容词或形容词短语。
测试类的命名以它要测试的累的名称开始,以Test结束。例如,HashTest或HashInterationTest.

(3)方法名
方法名都以lowerCamelCase风格编写。
方法名通常是动词或动词短语。
下划线可能出现在JUnit测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test_,例如testPop_emptyStack。

(4) 常量名
常量名命名模式为CONSTANT_CASE,全部字母大写,用下划线分隔单词。

(5) 非常量字段名
非常量字段名以lowerCamelCase风格编写。
这些名字通常是名词或名词短语。

(6 )参数名

参数名以lowerCamelCase风格编写。

参数应该避免用单个字符命名。

(7) 局部变量名
局部变量名以lowerCamelCase风格编写,比起其它类型的名称,局部变量名可以有更为宽松的缩写。
虽然缩写更宽松,但还是要避免用单字符进行命名,除了临时变量和循环变量。
即使局部变量是final和不可改变的,也不应该把它示为常量,自然也不能用常量的规则去命名它。

(8 )类型变量名
类型变量可用以下两种风格之一进行命名:
单个的大写字母,后面可以跟一个数字(如:E, T, X, T2)。
以类命名方式(5.2.2节),后面加个大写的T(如:RequestT, FooBarT)。

六,缩进,空白
https://github.com/google/styleguide
这是一个eclipse-Java-google-style.xml的下载地址,在下载并解压之后,在如下路径导入该文件,Eclipse->window->preferences->Java->Code Style->Formatter->Import 选择eclipse-java-google-style.xml文件。
这里写图片描述
在Edit中可以设置缩进
然后再使用Ctrl+Shift+F即可将代码格式化为我们所规范使用的格式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值