1、常見的命名規範java
一、Pascal命法:android
每一個單詞的首字母大寫。 如:PersonName、SchoolName web
二、Camel命名法: app
第一個單詞的首字母小寫,其他單詞的首字母大寫。如:personName、schoolName 框架
三、匈牙利命名法: ide
變量名=屬性+類型+對象描述。 如:m_intMaxDate函數
屬性:全局變量(g_)、常量(c_)、成員變量(m_)、靜態變量(s_)優化
類型:函數(fn)、句柄(hand)、長整型(long)、布爾(bool)、浮點型(float)、雙字(dw)、字符串(str)、雙精度浮點(double)、計數(count)、字符(char)、整型(int)、字節(byte)this
描述:最大(Max)、最小(Min)、初始化(Init)、臨時變量(T/Temp)、源對象(Src)、目的對象(Dest) spa
四、下劃線命名法:
全部字母均小寫,每一個單詞間如下劃線分割。如:person_name
2、命名規範的運用
一、包名所有小寫 package istg.tolo.common
二、文件命名(即類名) 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>{……}
三、方法名(動賓短語,如:eatFood,而不是Food)
public class SomeClass{
public SomeClass(){}; //Pascal命名用於構造函數
public void someClassMethod(){……}; //Camel命名用於普通函數
}
四、接口命名(後綴命名法)
接口文件及名稱定義:Review、ReviewListener
事件接口定義:OnClickListener
五、變量命名
私有成員變量(類變量):前綴m+Pascal命名法,如:private String mMyName
私有成員變量(類變量)(優化):Camel命名法,如:private String myName
靜態成員變量:前綴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++){……}
3、命名格式化
一、嚴格換行
一個;一換行
二、嚴格縮進
使用Tab縮進
註釋縮進和代碼縮進對齊
三、嚴格註釋
文件,類,方法,方法函數,變量,屬性,都要註釋
文件和類的註釋必定要包含以下元素:Name, Description, Version, Date, Author, Change, Copyright
遵循JavaDoc標準,如:
/**
*
*/
//這是個人名稱
private String mName;
四、聲明的位置
(1)將全部的框架定義的命名空間爲一組,自定義的和第三方的命名空間放在另外一組
(2)類成員變量聲明位置
全部的成員變量都應該聲明在頂部,同時使用一個空行來將它們和屬性方法分開。如:
public class myClass{
int mNumber;
String mName;
public void someMethod(){……}
}
(3)局部變量聲明位置
局部變量放到方法頂部
五、使用Java預約義的類型而不使用類名來聲明變量
使用預約義的類型(關鍵詞)而不使用類名來聲明變量,如:
使用 object 而不是 Object
使用 int 而不是 Int32
4、規範的代碼實例
/** * 學生管理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(){ } }