文档章节

Java/Android开发规范——变量和常量命名

飞雪无措
 飞雪无措
发布于 2015/02/26 22:12
字数 1499
阅读 115
收藏 0

变量的命名

主要的的命名规范有以下三种:

  • Camel 标记法: 首字母是小写的,接下来的单词都以大写字母开头。
    • Pascal 标记法: 首字母是大写的,接下来的单词都以大写字母开头。
      • 匈牙利标记法: 在以Pascal标记法的变量前附加小写序列说明该变量的类型。

在Java我们一般使用匈牙利标记法 ,基本结构为scope_typeVariableName,它使用1-3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。

例如,定义一个整形变量,用来记录文档数量:

intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。 byte、short、char、int、long、float、 double、boolean。

数据类型/前缀(附)

对于在多个方法内都要使用的全局变量,在前面再增加“g_”。例如一个全局的字符串变量:g_strUserInfo。

在变量命名时要注意以下几点:

  • 选择有意义的名字,注意每个单词首字母要大写。
  • 在一段方法中不使用同一个变量表示前后意义不同的两个数值。
  • i、j、k等只作为小型循环的循环索引变量。
  • 集合、数组   应该从命名中体现其复数的含义,例如加后缀 s 或前缀 some ,名字要有意义。
  • 临时变量通常被取名为 i , j , k , m  和 n ,它们一般用于整型; c , d , e ,它们一般用于字符型。
  • 避免用Flag来命名状态变量 。
  • 用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。
  • 如果需要的话,在变量最后附加计算限定词,如:curSalesSum。
  • 命名不相包含,curSales和curSalesSum。
  • static final 变量(常量)的名字应该都大写,并且指出完整含义 。
  • 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。 建议变量名中尽量不要出现缩写 。
  • 通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用 strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常用的量词后缀有:First(一组变量中的第一个)、Last(一组变量中的最后一个)、Next(一组变量中的下一个变量)、Prev(一组变量中的上 一个)、Cur(一组变量中的当前变量)。
  • 为每个变量选择最佳的数据类型,这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找。
  • 尽量缩小变量的作用域。如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。它们的主要问题是,任何类 中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。占用资源是作用域涉及的一个重要问题。对变量来说,尽量缩小作用域将会对应用程序的 可靠性产生巨大的影响。

关于常量的命名方法,在JAVA代码中,无论什么时候, 均提倡应用常量取代数字、固定字符串。 也就是 说,程序中除0,1以外,尽量不应该出现其他数字。常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线“_”来分割这些单词如: NUM_DAYS_IN_WEEK、MAX_VALUE 。

 

  域 (Field) 命名

  1. 非公有、非静态字段命名以m开头。
  2. 静态域命名以s开头。
  3. 公有字段以小写字母开头。
  4. public static final 字段(常量) 全部大写,并用下划线连起来。

例子:

public static final int SOME_CONSTANT = 42; 
public int publicField; 
private static MyClass sSingleton;
int mPackagePrivate; 
private int mPrivate; 
protected int mProtected;

文件命名规范

res/layout 目录下文件:

统一用小写和下划线 "_" 组合命名,建议 xml 文件加个 前缀 以便区分,如对话框的xml 配置文件 : dlg_name.xml ;

res/drawable 目录下文件:

统一用小写加下划线 “_” 组合命名,同上,每个资源文件最好加个前缀以便区分,如: btn_submit_default.png,btn_ submit_pressed.png, btn_ submit.xml ;

 

Control Name Shutcut
TextView txt
Button btn
LinkButton lnkbtn
ImageButton imgbtn
ListBox lst
CheckBox chk
RadioButton rdobtn
ImageView imgView
AnalogClock
DigitalClock dc
DatePicker dp
TimePicker tp
ToggleButton tgBtn
EditText edt
ProgressBar proBar
SeekBar sekBar
AutoCompleteTextView
MultiAutoCompleteTextView
ZoomControls zc
Include
VideoView vdoView
WebView
RatingBar ratBar
Tab tab
Spinner spn
Chronometer
ScrollView
TextSwitcher txtSw
ListView lstView
Gallery
ImageSwitcher
GridView gv
ExpandableList

本文转载自: http://www.cnblogs.com/agrimony/p/3317135.html

共有 人打赏支持
飞雪无措
粉丝 1
博文 8
码字总数 908
作品 0
长沙
技术主管
私信 提问
Android JNI(一)——NDK与JNI基础

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头
2018/05/09
0
0
Android 逆向分析(一) 之 Smali语法

Smali 语法 引言 大家都知道apk安装包其实就是个zip包,我们通过解压软件解压出来会看到里面的架构 assets lib arm ... res smali AndroidManifest.xml classes.dex Java代码编译得到的Dalvi...

蔡小鹏
2017/03/21
0
0
Android cts4.2 windows环境搭建说明

最近由于工作需要,要对我们的智能手机进行兼容性测试,在网上关于windows下测试环境搭建的介绍都比较凌乱,这里总结一下我的androidCTS测试windows下环境搭建,分享给大家,希望对大家有用。...

AlexMahoneFBI
2014/08/27
0
0
Android的虚拟机Dalvik引来论战不断

随着上周Google的Android SDK的发布,关于它的API以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举。不过,其中的一个话题在Java社区是一石激起千层浪,这就是Android平台的基础—...

红薯
2009/09/27
2.4K
3
Windows上搭建Android开发环境详细教程

  在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的...

jiatin
2016/04/10
498
8

没有更多内容

加载失败,请刷新页面

加载更多

cnetos7+docker+rancher构建基于DevOps的全自动CI【01】

来自DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量、私有代码库与私有镜像库的应用等。 1、环境选择 安装Rancher环境,一定要在干净的...

Elson
2分钟前
0
0
21分钟教会你分析MaxCompute账单

背景 阿里云大计算服务MaxCompute是一款商业化的大数据分析平台,其计算资源有预付费和后付费两种计费方式。并且产品每天按照project为维度进行计量计费(账单基本情况下会第二天6点前产出)...

zhaowei121
5分钟前
0
0
CTO职场解惑指南系列(一)

基于科技能够改变世界的事实,几乎每个公司的程序员都自带闪光灯。程序员的手和普通人的手自然是有区别的,“我们可是用双手改变了世界” 。(码农真的是靠双手吃饭,呵呵) 这个世界上但凡靠...

阿里云云栖社区
10分钟前
0
0
css实现图片自适应容器宽高

css实现图片自适应容器宽高的做法一般如下所示 <style>div{width: 200px; height: 200px}div img{width: 100%; height: 100%}</style><div><img src="xxxx.png" /></div> 当外层容......

小草先森
10分钟前
0
0
PlatON在CentOS上编译部署

本文作者为万向区块链CTO罗荣阁。 目录 PlatON在CentOS上编译部署 1. CentOS 环境准备 1.1. 使用rpm 安装devtoolset-7 1.2. 使用rpm 安装dos2unix 1.3. 准备PlatON代码 1.4. 确保build脚本正...

万向区块链
18分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部