使用建構函式協助描述列舉項

2021-09-22 09:12:15 字數 1085 閱讀 9730

一、分析

一般來說,我們經常使用的列舉項只有乙個屬性,即排序號,其預設值是從0、1、2... ...。但是除了排序號外,列舉還有乙個(或多個)屬性:列舉描述,它的含義是通過列舉的建構函式,宣告每個列舉項(也就是列舉例項)必須具有的屬性和行為,這是對列舉項的描述或補充,目的是使列舉項表述的意義更加清晰準確.

二、場景

比如,可以通過列舉建構函式宣告業務值,定義可選項,新增屬性,看如下**:

1

public

class

client 6}

78enum

season

1516

//獲得列舉值

17public

string getdesc()

20 }

執行輸出: 春

其列舉項是英文的,描述是英文的,這樣使其描述更加準確.方便了多個協作者共同引用常量.若不考慮描述的使用(即訪問getdes方法),它與如下定義的描述很相似.

1

inte***ce

season

比較上面兩段**,很容易看出使用列舉項是乙個很好的解決方案,非常簡單,清晰.

可以通過列舉建構函式宣告業務值,定義可選項,新增屬性等.看如下**:

1

enum

role

17/**

name,lifetime,scope的get方法較簡單,不再贅述

*/18 }

這是乙個角色定義類,描述了兩個角色:管理員(admin)和普通使用者(user),同時它還通過建構函式對這兩個角色進行了描述.:

1.name 表示的是該角色的中文名稱

2.lifetime 表示的是該角色的生命週期,也就是多長時間角色失效

3.scope 表示的是該角色的許可權範圍.

這樣 乙個描述可以使開發者對admin和user兩個常量有乙個立體多維度的認知.有名稱,生命期還有許可權範圍.而且還可以在程式中方便的獲得這些屬性.

建議在列舉定義中改為每個列舉項定義描述,特別是在大規模的專案開發中.大量的常量項定義使用列舉比在介面常量或者類常量中增加注釋的方式友好簡潔很多.

列舉 建構函式 注意事項

列舉 定義 列舉是乙個被命名的整形常數的集合,用於宣告一組帶識別符號的常數。類似人的性別 男和女,一周的星期只能是七天中的乙個。類似這種當乙個變數有幾種固定可能的取值時。就可以將它定義為列舉型別。列舉被設計成是單例模式,即列舉型別會由jvm在載入的時候,例項化列舉物件,你在列舉類中定義了多少個就會例...

建構函式使用

建構函式具有兩個特點,第一首字母大寫,第二內部使用this關鍵字,呼叫時必須通過new命令呼叫生成例項。new的作用 呼叫建構函式生成乙個例項物件,有點類似於工廠模式,每個例項擁有建構函式的方法與屬性。使用new時可以不加 new foo 不過閱讀方便這裡推薦加上,建構函式可以接受引數,與普通函式一...

建構函式的使用

在c 中,我們一般會利用建構函式來初始化類裡面的成員函式,先看下面一段 可以自己先考慮輸出語句會不會是0?include using namespace std struct cls cls int main cls obj cout 在 第10行,不帶引數的建構函式直接呼叫了帶引數的建構函式。這種...