java命名规范

1 命名规范

命名规则

大驼峰命名(UpperCamelCase):每个单词的第一个字母大写,其他字母小写。

小驼峰命名(lowerCamelCase):如果仅有一个单词,那么所有字母全部小写,如果是两个及以上的单词组成的名称,那么除了第一个单词是全部小写外,其他但是的首字母大写,其他字母小写。

所有的命名都应该以字母(A-Z或者a-z)、美元符($)或者下划线(_)开始;

首字符之后可以是字母(A-Z或者a-z)、美元符($)或者下划线(_)或者数字的任何字符组合;

严禁使用关键词命名;

严禁使用拼音与英文的混合方式命名,更不允许使用中文的方式命名;

命名尽量使用英文,除了通用的拼音(Beijing)可视为英文,其他的拼音都不是英文;

命名除了常见的英文缩写,尽量避免使用缩写;

命名需要简洁,见名知意,通俗易懂;

1.1 包的命名

包的命名由全部小写的单词组成。一般使用公司的域名的作为自己程序包的唯一前缀,使用倒域名规则,例如:com.baidu.项目名,然后针对每个具体的模块在区分每个模块包名,例如:论坛模块的整体包名:com.baidu.项目名.tribune。

1.2 类的命名

类的命名遵循大驼峰命名的规则,常见类的命名规则如下:

类描述举例

Activity类以Activity为后缀启动页面:LaunchActivity

Fragment类以Fragment为后缀论坛推荐列表:TribuneRecommendFragment

Adapter类以Adapter为后缀论坛适配器:TribuneAdapter

ViewHolder类以ViewHolder为后缀广告类型:AdViewHolder

Bean类以Bean为后缀新闻实体类:NewsBean

Model类以Model为后缀论坛推荐Model:TribuneRecommendModel

工具类以Util为后缀网络工具类:NetWorkUtil

Service类以Service为后缀音频服务:AudioService

BroadcastReceiver 类以Receiver为后缀音频广播:AudioReceiver

ContentProvider类以Provider为后缀联系人的内容提供者:ContactsProvider

Dialog类以Dialog为后缀加载:LoadingDialog

监听器类以Listener为后缀网络监听:NetWorkListener

自定义基础类以Base为前缀例如:BaseActivity,BaseFragment

抽象类以 Abstract或者Abs为前缀例如:AbsBean

管理类以Manager为后缀联系人管理类:ContactsManager

解析类以Parser为后缀新闻Json解析类: NewsJsonParser

1.3 接口的命名

接口命名遵循大驼峰命名的规则,以大写的I开头,表示这是一个接口,以able或ible截尾。

1.4 变量命名

变量的命名遵循小驼峰命名的规则,其中控件的变量建议使用控件缩写+逻辑名称的格式,例如:

private TextView tvUserName;。

其中布局中每个控件的id命名为控件缩写_逻辑名称,例如:tv_user_name。

常见控件的缩写如下:

控件缩写控件缩写

TextViewtvEditTextet

ButtonbtnImageViewiv

ListviewlvRecyclerViewrv

GridViewgvWebViewwv

LinearlayoutllRlativeLayoutrl

FrameLayoutflScrollViewsv

ProgressBarpbImageButtonib

CheckBoxcbRadioButtonrb

RadioGrouprgSeekBarsb

VideoViewvvSurfaceViewsv

1.5 常量的命名

常量名称的每个单词都大写,并且每个单词之间通过下划线(_)连接,例如:

publicstaticfinalintREQUEST_KEY_CODE =1;

1.6 方法的命名

方法的命名遵循小驼峰命名的规则,以动词+名词的方式组成,例如初始化view:initView()。

1.7 资源文件命名

全部小写,并通过下划线连接。

1.7.1 布局文件的命名

以对应的类别名称为前缀,然后紧跟模块包名,最后是逻辑名称,他们之间通过下划线连接。

常见的命名如下:

布局类型布局前缀举例

Activityactivity_模块名_求助主页面:activity_sos_main

Fragmentfragment_模块名_论坛推荐:fragment_tribune_recommend

列表itemitem_模块名_论坛推荐:item_tribune_recommend

Dialogdialog_论坛详情页回复:dialog_tribune_reply

Includeinclude_全局通用的标题栏:include_global_title

1.7.2 动画资源文件命名

动画效果命名风格

淡入/淡出fade_in/fade_out

从某个方向淡入/淡出fade_方向_in(out)

从某个方向弹入/弹出push_方向_in(out)

从某个方向滑入/滑出slide_方向_in(out)

1.7.3 value中name命名

1.7.3.1 strings.xml

命名格式:string_模块名_逻辑功能,例如:启动页面的跳过:

name="string_launch_jump">跳过

1.7.3.2 colors.xml

命名格式:color_颜色值,其实颜色值是16进制,例如:白色:

name="color_ffffff">#FFFFFF

1.7.3.3 styles.xml

遵循大驼峰命名的规则,XXXStyle,例如:LoadingStyle。

1.7.3.4 dimens.xml

文字:font_字号,字号单位是sp;

距离:space_距离值,距离单位是dp;

控件的宽高:具体控件width/height宽高值,宽高值单位是dp。

代码如下:

18sp16dp48dp24dp

2 格式规范

2.1大括号的使用

大括号的开始在代码块开始的行尾,结束在代码块同一缩进的行首;

条件语句一定使用大括号;

左大括号前不换行,右大括号前换行,除了if-else,try-catch;

大括号内没有任何代码,不换行。

2.2 空格的使用

表示分隔时用一个空格;

运算符两边用一个空格隔开;

逗号语句后面如果不换行,也用一个空格。

3 注释

3.1 类、接口注释

使用多行注释的方式,规则如下:

/**

* Author:开发人员姓名

* Email:开发人员邮箱

* Description:  描述该类/接口实现的具体功能

* Date: 2017/4/20 14:16  创建该类的时间

*/

3.2 方法注释

3.2.1 整体方法注释

使用多行注释的方式,规则如下:

/*** 描述方法实现的功能*@params  说明参数含义*@return说明返回值含义*/

3.2.2 方法内部注释

方法内部单行注释,在被注释语句上方另起一行,使用“//”注释。

方法内部注释,使用/* ... */注释。

注释与代码要对齐,*及// 与其后面的文字之间空一格。

3.3 变量注释

使用单行注释的方式,使用“//”注释,在变量后面天啊及,如果注释太长,在变量上方添加。

3.4 xml注释

<!--注释内容-->

以上,是我目前总结的常用的Android代码规范,希望对大家有所帮助,以后会根据自己对代码规范的要求提升继续补充!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351