Android 编码规范及代码风格
一、常见的命名规范
1、Pascal命法:
每个单词的首字母大写。 如:PersonName、SchoolName
2、Camel命名法:
第一个单词的首字母小写,其余单词的首字母大写。如:personName、schoolName
3、匈牙利命名法:
变量名=属性+类型+对象描述。 如:m_intMaxDate
属性:全局变量(g_)、常量(c_)、成员变量(m_)、静态变量(s_)
类型:函数(fn)、句柄(hand)、长整型(long)、布尔(bool)、浮点型(float)、双字(dw)、字符串(str)、双精度浮点(double)、计数(count)、字符(char)、整型(int)、字节(byte)
描述:最大(Max)、最小(Min)、初始化(Init)、临时变量(T/Temp)、源对象(Src)、目的对象(Dest)
4、下划线命名法:
所有字母均小写,每个单词间以下划线分割。如:person_name
二、命名规范的运用
1、包名全部小写 package istg.tolo.common
2、文件命名(即类名) Pascal命名
(1)普通类(Pascal命名法)
public class SomeClass{
public SomeMethod(){} //构造函数
}
(2)自定义属性类(后缀使用Attribute)
public class BussinessPlugAuthorAttribute extends Attribute{……}
(3)自定义异常类(后缀使用Exception)
public class BussinessException extends Exception{……}
(4)泛型中的类型传递
public class LinkedList<K,T>{……}
3、方法名(动宾短语,如:eatFood,而不是Food)
public class SomeClass{
public SomeClass(){}; //Pascal命名用于构造函数
public void someClassMethod(){……}; //Camel命名用于普通函数
}
4、接口命名(后缀命名法)
接口文件及名称定义:Review、ReviewListener
事件接口定义:OnClickListener
5、变量命名
私有成员变量:前缀m+Pascal命名法,如:private String mMyName
静态成员变量:前缀s+Pascal命名法,如:static String sMyName
局部变量:Camel命名法,如:String resolvedType = null;
局部变量(优化):前缀_+Pascal命名法,如:String _ResovledType = null;
方法内参数:Camel命名法,如:eatFood (IntentSender intent, int requestCode){……}
方法内参数(优化):前缀p+Pascal命名法,如:eatFood (IntentSender pIntent, int pRequestCode){……}
循环中的变量:可以使用缩写字母,无意义字母,如:for(i=0;i<Count;i++){……}
三、命名格式化
1、严格换行
一个;一换行
2、严格缩进
使用Tab缩进
注释缩进和代码缩进对齐
3、严格注释
文件,类,方法,方法函数,变量,属性,都要注释
文件和类的注释一定要包含如下元素:Name, Description, Version, Date, Author, Change, Copyright
遵循JavaDoc标准,如:
/**
*
*/
//这是我的名称
private String mName;
4、声明的位置
(1)将所有的框架定义的命名空间为一组,自定义的和第三方的命名空间放在另一组
(2)类成员变量声明位置
所有的成员变量都应该声明在顶部,同时使用一个空行来将它们和属性方法分开。如:
public class myClass{
int mNumber;
String mName;
public void someMethod(){……}
}
(3)局部变量声明位置
局部变量放到方法顶部
5、使用Java预定义的类型而不使用类名来声明变量
使用预定义的类型(关键词)而不使用类名来声明变量,如:
使用 object 而不是 Object
使用 int 而不是 Int32
四、规范的代码实例
/** * 学生管理Activity类 * @author jiatao * @date 2015-4-25 * @company zkr * <h1>version : 1.0 </h1> */ package mobidever.demo.students; import android.app.Activity; import android.os.Bundle; import android.widget.Toast; /** * 学生管理类 * @author jiatao * @date 2015-4-25 * @since level 8 (android 2.0) * @version 1.0 */ public class StudentManageActivity extends Activity { //定义的学生私有对象 private Object mStudent; //静态的学生变量定义 private static Object sStudent; /** * CLASS_ONE 一班的常量定义 */ private final String CLASS_ONE = "class1"; private final String MESSAGE_WARN = "你输入的内容不正确,请重新输入"; /** * 得到学生信息 * @return 得到学生信息 */ public Object getmStudent() { return mStudent; } /** * 设置学生信息 * @param mStudent 具体的学生信息值 */ public void setmStudent(Object mStudent) { this.mStudent = mStudent; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); //调用初始化界面的函数 initDisplay(); //调用班级学生计算函数,得到class1班的学生数量 this.calculateStudentsCount(CLASS_ONE); Toast.makeText(this, MESSAGE_WARN, 3000).show(); } /** * 根据班级计算学生数量 * @param pClassName 班级名称 * @return 返回班级所属学生数量 * @author jiatao * @date 2015-4-25 * @version 1.0 * * 加入了对男女生的判断 * @author xuexing * @date 2015-4-26 * @version 1.1 */ public int calculateStudentsCount(String pClassName){ int _StudentCount = 5; //方法内局部变量 // pStudentCount = 12; //方法内的参数变量 // mStudentCount = 13; //类成员变量 return _StudentCount; } /** * 初始化界面 */ public void initDisplay(){ } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。