热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java多行书写_Java代码书写规范

一、通用规范1.1命名规范1.使用全单词表示2.使用贴切的词汇3.使用大小写混合4.尽量少用缩略词,否则,维护一个标准的缩略词表5.避免过长࿰

一、通用规范

1.1命名规范

1. 使用全单词表示

2. 使用贴切的词汇

3. 使用大小写混合

4. 尽量少用缩略词,否则,维护一个标准的缩略词表

5. 避免过长,小于15

6. 避免类似的命名或仅在大小写上区分的命名

7. 标准缩略词做一个单词处理

1.2文档规范

1. 增加注释,以确保代码清晰

2. 无需注释的程序,可能也不值得运行

3. 避免修饰性注释

4. 保持注释简洁

5. 写代码之前写注释

6. 注释中说明代码的原因,而不是结果

二、Java编码规范

2.1命名和大小写规范:

下面这些广泛使用的命名规范可以应用到Java中的包、类、方法、属性和常量。因为这些规范的使用非常普遍,而且它们还影响到了我们定义的类的公共API,所以我们应该认真遵守这些规范:

1. 包

保证包的名称是唯一的,包的名称前缀以我们的网络域名称,包名小写(例如com.itsv.utils)置于文件最上一行

2. 类

第一个字母必须大写,所以类名称是大小写混合的(例如String);如果类名称是由多个单词组成的,那么每个单词都应该以大写字母开头(例如StringBuffer);如果一个类名称或者类名称中的一个单词是字母缩写词,那么我们可以把这个缩写词中的每个字母都写成大写(例如URL、HTMLParser)。因为设计的类是用来代表对象的,所以我们在为类起名称时应尽量选择名词。

如果是某一种特殊类别的类,则可以统一采用特殊简短后缀来标识,这些后缀全部大写。例如,对所有处理与数据库相关的类,可以在类名后加上DAOImpl来标识

引用类: 全部置于包名之后,文件所定义类名之前

类的定义顺序:

class xxx

constructors

finalize

public member functions

protected member functions

private member functions

private fields

3. 接口

接口名称遵循的大小写规则和类名称是一样的。用接口来提供一些关于实现它的类的额外信息,常用形容词作为接口名称(例如Runnable),当接口更像一个抽象的超类时,我们又用名词来作为接口的名称(例如Document)

在创建类之前先创建公共接口,以确定类的应用存根,接口的命名用描述性的形容词或名词,或者加前缀I或后缀Ifc:

Runnable

Cloneable

Singleton

DataInput

4. 方法

方法名称总是以小写字母开头。如果名称中包含的单词多于一个(一般使用动词和名词组合而成),那么除第一个单词外的所有单词都应该以大写字母开头,动词放在首单词,例如insert()、insertObject()。

成员变量访问方法accessor的命名:

使用Getter-get和Setter-set方法,对于boolean类型的可以使用is代替get

Getter还有can和has

成员方法的范围:

范围

描述

正确使用方法

Public

任何类或对象的任何成员方法中可以调用

当该方法必须被当前类分支之外的类或对象调用时

Protected

只能被同类及所有子类的成员方法调用

当该方法只能被当前类及其分支之内的类或对象调用时

private

只能被同类的成员方法调用,子类的成员方法不能调用

封装一个类的特有方法,当前类所特有,其他类或子类没有

缺省的为软件包级可用,对相同软件包package的类可使用,不能在不同软件包的类中调用

5. 属性和常量

非常量的属性名称所遵循的大小写规则和方法名称是一样的。如果一个属性是静态final类型的常量,那么该属性的所有字母都应该大写。如果常量的名称中包含多个单词,那么应该用下划线来分隔这些单词(例如MAX_VALUE)。此外,选择的属性名称应该是最能说明属性或其取值的含义的。

集合属性(Array, Vector)采用复数

firstName

orderItems

常量命名

static final MAX_VALUE

属性范围

范围

描述

用于

public

可以在所有类的方法中引用

最好不定义此类属性

protected

可以在本类及子类方法中引用

最好不定义此类属性

private

只能用于同类的方法中

所有属性都应是此种类型并通过访问器accessor访问

6. 参数

方法参数名称会出现在方法的文档中,所以参数含义应尽可能明确。一般参数名称为一个单词。

成员函数的参数标准:

使用接口代替类作为参数,实现多态性

7. 局部变量

命名规则和方法以及属性的命名规则一样。

2.2 注释规范

2.2.1总体说明

1. 三种类型的Java注释

注释类型

用于

例子

文档注释

写在类、接口、成员函数和属性的定义紧前方,由javadoc用于创建类的外部文档。

/**

* document comments

*/

C风格注释

暂时注释不用的代码

/*

comments

*/

单行注释

在成员函数中用于注释商业逻辑,代码段,变量定义

// comments

文档注释的主体部分一开始应该先用一句话概括类、接口、方法或属性完成的功能,书写时单独占一行。概括性句子的后面还可以跟若干条,详细介绍类、接口、方法或属性的注释语句及段落。

在描述性的段落之后,文档注释还可以包括其他一些段落,每个段落都以一个特殊的文档注释标签开始,例如@auther、@param。

2. doc注释的标签

@author 名称   后加上相应的作者

@version 文本  插入指定文本的版本信息

@param 参数-名称描述

@return 描述

@exception 完整的类名称 描述信息

@throws 完整的类名称 描述信息

@see 引用其他类,格式如下:@see类名

@see 完整类名

@see 完整类名#方法名

{@link引用}

@deprecated 解释

@since 版本号

@serial 描述信息

@serialField名称 类型 描述信息

@serialData描述信息

@beaninfo信息

文档注释的描述信息可以包括简单的HTML标注标签,不包括HTML的主要结构标签,例如

和等。

在文档注释中使用标签{@link}来引用超级链接或者是交叉引用,避免用标签。

如果希望在文档注释中包括图像,可以把图像文件放在源代码目录下的doc文件的子目录中,然后把图像取名为和类一样的名称,并在名称之后加上数字作为后缀,例如,可以在叫做Circle类的文档注释中包括下面这个HTML标签,它定义了出现在注释中的第二张图片:

2.2.2具体注释内容

1. 注释类

类功能说明:注释类的功能

@author 注释类的作者

@see  注释引用类的情况

@version 注释类的版本信息

2. 注释成员方法

l 头部注释

1. 功能描述:描述成员方法的功能及存在的原因(必填)

2. @param 参数及名称描述(必填)

3. @return 返回值(必填)

4. @exception 描述信息

5. @see 引用说明

6. @since 版本号

7. 存在问题:存在的尚未解决的问题

8. 使用范围:确定使用范围及原因

9. 外部变动:对其他对象的变动注释

10. 修改历史:注明修改时间、修改人、修改内容、修改原因(必填)

11. 调用方法:说明调用的前提条件和事后条件、说明并发调用情况

l 内部注释

1. 在方法内部的开始部分统一注释方法的逻辑

2. 控制结构,结构性语句的起始位置需要注明,控制结构的尾部

3. 注明局部变量

4. 注释结束括号}

2.3编写清晰的代码

1. 注释文档

2. 段落化

3. 多行语句段落化

4. 使用空格和空行

5. 方法不能太长,遵循30秒规则

6. 定义消息的传递,在注释中体现

7. 简短的命令行

8. 将比较的常数放在左方,以防止误写为赋值语句

三、 JAVA命名缩略词表

参见缩略词表。



推荐阅读
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了GregorianCalendar类的基本信息,包括它是Calendar的子类,提供了世界上大多数国家使用的标准日历系统。默认情况下,它对应格里高利日历创立时的日期,但可以通过调用setGregorianChange()方法来更改起始日期。同时,文中还提到了GregorianCalendar类为每个日历字段使用的默认值。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
author-avatar
不要再想Ta
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有