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

时间:2024-03-10 14:16:02

变量的命名

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

  • 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,名字要有意义。
  • 临时变量通常被取名为ijkn,它们一般用于整型;cde,它们一般用于字符型。
  • 避免用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 字段(常量) 全部大写,并用下划线连起来。

例子:

 1 public class MyClass  {  
 2 
 3     public static final int SOME_CONSTANT = 42;  
 4 
 5     public int publicField;  
 6 
 7     private static MyClass sSingleton;  
 8 
 9     int mPackagePrivate;  
10 
11     private int mPrivate;  
12 
13     protected int mProtected;  
14 
15   }

 

文件命名规范

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  
 

评分