官术网_书友最值得收藏!

2.10 枚舉類型

前面已經(jīng)了解了幾種基本的數(shù)據(jù)類型,相信讀者也能進(jìn)行一些簡(jiǎn)單的數(shù)據(jù)計(jì)算工作了。不過(guò),在實(shí)際工作中,需要處理的數(shù)據(jù)和信息的類型可不止這幾種,那么處理性別、星期幾這類信息時(shí),應(yīng)該使用什么數(shù)據(jù)類型呢?

首先,這類數(shù)據(jù)都有些什么特點(diǎn)呢?性別只能是男和女,當(dāng)然,用戶也可能選擇保密,這樣就會(huì)有三個(gè)固定的數(shù)據(jù)。星期包括從星期日到星期六這7個(gè)數(shù)據(jù)值(這里假設(shè)每周的第一天為星期日)。代碼中,如果只是簡(jiǎn)單地使用數(shù)字來(lái)表示,很可能會(huì)出現(xiàn)問(wèn)題,例如輸入錯(cuò)誤、意外賦值等。

那么,如何解決這類問(wèn)題呢?可以使用本節(jié)討論的枚舉類型來(lái)處理。

枚舉是一種自定義的數(shù)據(jù)類型,其中定義了可用的數(shù)據(jù)(枚舉值)。下面的代碼定義了一個(gè)名為ESex的枚舉類型,用于操作性別數(shù)據(jù)。

請(qǐng)注意,需要在方法的外部定義其他類型。定義枚舉時(shí),使用enum關(guān)鍵字,enum關(guān)鍵字后面指定枚舉類型的名稱。然后,枚舉成員定義在一對(duì)花括號(hào)中,每個(gè)值使用逗號(hào)分隔。

定義枚舉類型的變量(如代碼中的sex變量)時(shí),與定義基本數(shù)據(jù)類型應(yīng)該是相同的,只是在賦值時(shí)使用了“<枚舉類型>.<成員>”的形式指定枚舉變量的值。

有些時(shí)侯,枚舉數(shù)據(jù)可能需要轉(zhuǎn)換為數(shù)值,例如需要保存到SQLite數(shù)據(jù)庫(kù)中的時(shí)候,此時(shí),可以使用類似下面的代碼。

說(shuō)明代碼的功能之前,先介紹枚舉類型的一個(gè)特點(diǎn)。枚舉類型中,每個(gè)成員都會(huì)有一個(gè)整數(shù)索引值,第一個(gè)成員的索引值為0,第二個(gè)成員的索引值為1,以此類推。

當(dāng)在枚舉類型和整數(shù)類型之間進(jìn)行轉(zhuǎn)換時(shí),實(shí)際上就是在成員索引值和成員名稱之間進(jìn)行轉(zhuǎn)換。

再來(lái)看代碼功能。第一個(gè)輸出語(yǔ)句使用枚舉類型變量sex的ordinal()方法獲取其枚舉成員的索引值。在第二個(gè)輸出語(yǔ)句中,首先使用ESex.values()方法獲取所有枚舉成員組成的數(shù)組,然后獲取索引值為2的成員,也就是第3個(gè)成員的成員,即female。

實(shí)際上,在學(xué)習(xí)面向?qū)ο缶幊毯蛿?shù)組以后,這些代碼都是非常容易理解的。而現(xiàn)在,只需要了解枚舉成員和整數(shù)之間的轉(zhuǎn)換方法就可以了。

主站蜘蛛池模板: 宜兰县| 聂拉木县| 刚察县| 平凉市| 东至县| 罗山县| 射洪县| 西藏| 汶上县| 民权县| 莫力| 虎林市| 永修县| 鹤山市| 即墨市| 桐庐县| 乌拉特中旗| 全南县| 屏边| 错那县| 吴忠市| 久治县| 岑溪市| 星子县| 临高县| 章丘市| 赫章县| 合肥市| 宜都市| 弥渡县| 衡南县| 津南区| 分宜县| 梁河县| 乌兰浩特市| 福州市| 马龙县| 沭阳县| 垦利县| 贵溪市| 枣阳市|