近期即将开始编码阶段,特地整理一下各方面的编程规范与命名约定,以便内部团队风格统一。

文章大多从网络上收集汇总而来,参考列表附在文章末尾。

Java编程规范整理

基本命名规范

包命名

包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反。

由一组以“.”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母。

People

TestPage

XMLExample

类,接口命名

类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。

People

TestPage

XMLExample

方法名

方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。可以为动词或动词+名词组合。

设置/获取某个值的Method,应该遵循setV/getV规范

返回长度的Method,应该命名为length

测试某个布尔值的Method,应该命名为isV

将对象转换为某个特定类型的Mehod应该命名为toF

getDate();

length();

isReady();

toOracleFormat();

变量名

普通变量命名应该采用首字母小写,其他字母首字母大写的方式。

final static变量的名字应该都大写,并且指出完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词如。

NUM_DAYS_IN_WEEK

MAX_VALU

3. 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性

context=ctx

message=msg

4. 通过在结尾处放置一个量词,就可创建更加统一的变量

First(一组变量中的第一个)

Last(一组变量中的最后一个)

Next(一组变量中的下一个变量)

Prev(一组变量中的上一个)

Cur(一组变量中的当前变量)

5. 无论什么时候,均提倡应用常量取代数字、固定字符串。也就是说,程序中除0,1以外,尽量不应该出现其他数字。

6. 索引变量:i、j、k等只作为小型循环的循环索引变量。

7. 逻辑变量:避免用flag来命名状态变量,用is来命名逻辑变量。

if(isClosed){

dosomeworks;

return;

}

数组

总是使用以下方式定义数组:

int[] arr = new int[10];

禁止使用C语言的是形式:

禁止

int arr[] = new int[10];

集合

数组或者容器推荐命名方式为名词+s的方式,例如:

List persons = getPerson();

for(Person person : persons){

dosomeworks;

}

泛型

应该尽量简明扼要(最好是一个字母),以利于与普通的class或interface区分

Container中的Element应该用E表示;Map里的key用K表示,value用V;Type用T表示;异常用X表示

如果需要接收多个Type类型的参数,应该用邻接T的大写字母——例如S——来依次表示,当然也可以用T1, T2这样的方式

public

class HashSet extends AbstractSet {…}

public

class HashMap extends AbstractMap {…}

public

class ThreadLocal {…}

public

interface Functor {

T val() throws X;

}

推荐的命名

1.当要区别接口和实现类的时候,可以在类的后面加上“Impl”。

interface Container

class ContainerImpl

2.Exception类最好能用“Exception”做为类命名的结尾

DataNotFoundException

InvalidArgumentException

3.抽象类最好能用“Abstract”做为类命名的开头

AbstractBeanDefinition

AbstractBeanFactory

4. Test类最好能用“Test”做为类命名的结尾

ContainerTest

5.简称与缩写(不推荐使用)

cp代表colorPoint

buf代表buffer

off代表offset

len代表length

除非是在循环中,否则一般不推荐使用单个字母作为变量名,不过也有例外,即约定俗成的单个字母

b代表byte

c代表char

d代表double

e代表Exception

f代表float

i, j, k代表整数

l代表long

o代表Object

s代表String

v代表某些类型的特定值

代码风格

花括号

花括号统一采用以下格式:

if(bool experssion){

dosomework;

}

除非花括号中为空,不然任何情况下不能省略花括号,并且花括号必须换行,例如:

if(i==0){

return;

}

while(true) {}

以下写法禁止出现:

禁止

if(i != 0) return;

禁止

if(i !=0) {return;}

括号

括号的前,后一个字符不需要空格,例如:

Person p = new Person(“Jack”, 17);

空格

逗号之后紧跟一个空格。

Person p = new Person(“Jack”, 16, “China”);

2. 二元操作符前后跟空格。

int i = a + b – c * d;

3. 一元操作符不需要空格,for语句分号后有空格。

for(int i = 0; I < 10; i++){

dosomework;

}

4. 括号前后不需要空格

类的定义结构按照顺序为:

1)         常量

2)         成员变量

3)         构造函数

4)         成员函数

5)         get和set方法

各个部分之间留出一个空行。

例如:

规范类模板:

class Person{

private final static int MAX_AGE = 100;

private String firstname = “Jack”;

public Person(){}

public Person(String firstname){

this.firstname = firstname;

}

public void doExercise(){

dosomeworks;

run();

}

private void run(){

dosomeworks;

}

public getFirstname(){

return firstname;

}

public setFirstname(String firstname){

this.firstname = firstname;

}

}

2.构造函数

1)         参数为空的构造函数出现在最上方

2)         有调用关系的构造函数相邻

3)         参数尽量由少到多从上至下排序

3.使用成员变量

在类的方法内引用成员变量了命名冲突以外,不使用this。非特殊情况在类的方法内都不使用get和set方法存取成员变量。

4.方法

有调用关系的方法尽量放在相邻的位置,public和private方法可以交叉放置。

5.get和set方法,所有需要公开的成员变量都要符合良好的javabean规范,提供get和set方法,尽量使用IDE工具自动生成。

Javadoc注释

在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加 Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成文档中以特定方式显示

参考文档

java编程规范换行_Java编程规范整理相关推荐

  1. java 多人聊天_java编程实现多人聊天室功能

    导读热词 本文实例为大家分享了java实现多人聊天室的具体代码,供大家参考,具体内容如下 程序源代码及运行截图: server.java //server.java package Socket; i ...

  2. java编程思想读书_JAVA编程思想读书记(一)

    JAVA是面向对象的语言,这一点每一个开发者都知道.但是享受于在myeclipse上自动生成,自动解决一切问题的时候,有些基础的我们也许会忘掉.我能明显感觉到自己对于软件的依赖以及基础知识的流失,所以 ...

  3. java标签组件命名_java编程规范之java命名规范

    想要成为一个优秀的程序员,首先要培养良好的编程习惯,为了提高代码的可读性,必须有好的命名规范. 这篇文章是小编结合网上的很多资料整理出来的,若有不当或错误的地方,欢迎大家指正 在文章开始前,为方便阅读 ...

  4. java编码规范右大括号换行_java编码规范摘选

    1.方法注释模板; @description,@param,@author 可选: @return,@exception 2. 行尾注释,如循环结束,模块类结束行 3. 文件开头注释 项目名称proj ...

  5. 第二章java编程基础测试题_Java编程基础测试题分享

    单选题:(每道题目2分) 1. 下列哪个声明是错误的?(B) A. int i=10; B. float f=1.1; //float f=1.1f C. double d=34.4; D. byte ...

  6. java程序算法实例_java编程算法经典案例

    编程经典案例(持续更新中,敬请期待): 一.购物问题 小明的女朋友最喜欢在网上买买买了,可是钱包里钞票有限,不能想买啥就买啥.面对琳琅满目的物品,她想买尽可能多的种类,每种只买一件,同时总价格还不能超 ...

  7. java哪个软件编程好学吗_java编程好学吗

    Java框架 01Struts2 -Struts2框架介绍 -工作原理及架构分析 -**掌握Struts2开发模式 -Struts.xml详解 -通配符的配置模式 -ActionContext及Ser ...

  8. java 为什么违例差错控制_JAVA编程思想学习 — 第九章 (违例差错控制)

    1.违例自变量 和 Java 的其他任何对象一样, 需要用 new 在内存堆里创建违例,并需调用一个构建器.在所有标准违例中,存在着两个构建器: 第一个是默认构建器,第二个则需使用一个字串自变量,使我 ...

  9. java面试编程面试题_Java编程面试的前50个问题

    java面试编程面试题 Java Programming Interview Questions are always the deciding factor in any Java intervie ...

最新文章

  1. 琴弦文字 - wpf行为
  2. 关于checkbox
  3. 使用Banner实现轮播展示
  4. VMware演示手机虚拟化
  5. LeetCode: Merge k Sorted Lists
  6. wpf中UserControl制作
  7. 部分主流sns平台的账号登录及api操作
  8. 【深度学习框架】Tensorflow Session.run()函数的进一步理解
  9. 华为Mate Xs预约超53万,售价16999元;微软前工程师因盗窃数字货币被判20年;FSF将推代码托管平台 | 极客头条...
  10. android之Activity关闭返回数据到启动他的页面
  11. PHPCrawl webcrawler library/framework
  12. jquery多维对象计算个数_山东省2005年专升本计算机考试真题2??
  13. Windows下的Neo4j下载与安装
  14. 卡巴斯基:2019年金融行业网络威胁趋势报告
  15. Grafana资料搜集
  16. win7环境下visualsvn-server的搭建与使用(Eclipse)整合版
  17. Typora+Git搭建云笔记本
  18. 7-18 nii.gz文件的处理
  19. 《常识:有用的无用的百科知识》新书相赠!
  20. 九轴姿态传感器的介绍和应用

热门文章

  1. 如何在IDA软件中找到自己需要的目标函数(关键函数)
  2. Python对文件的三种打开方式以及with管理上下文
  3. Python基础教程:新式类与经典类
  4. compact php,php中compact函数的功能起什么作用呢?
  5. python如何获取鼠标点击图片的像素点坐标
  6. python报错:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any(
  7. tensorflow tf.placeholder()(相当于创建变量分配内存空间,但不赋值)
  8. Python---Pickle模块
  9. 使用easyexcel导出
  10. Nginx教程系列一:Nginx简介(反向代理、负载均衡)