package Ġcom . android . samples . kotlin . basic . grammar Ċ Ċ /** Ċ Ġ* Author : lin hu Ċ Ġ* Email : lh zh eng @ grand stream . cn Ċ Ġ* Date : 1 9 - 3 - 7 Ċ Ġ*/ Ċ class ĠLess on 0 9 _ Enum Class Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile Ġprivate Ġvar ĠINSTANCE : ĠLess on 0 9 _ Enum Class ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠLess on 0 9 _ Enum Class Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ?: Ġsynchronized ( this ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠLess on 0 9 _ Enum Class (). also Ġ{ ĠINSTANCE Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// 1 . ĠKotlin Ġ æŀļ ä¸¾ ç±» ĊĠĠĠ Ġ/* ĊĠĠĠ Ġ æŀļ ä¸¾ ç±» æľĢ åŁºæľ¬ çļĦ çĶ¨ æ³ķ æĺ¯ å®ŀçİ° ä¸Ģä¸ª ç±»åŀĭ å®īåħ¨ çļĦ æŀļ ä¸¾ ãĢĤ ĊĠĠĠ Ġ æŀļ ä¸¾ å¸¸ éĩı çĶ¨ éĢ Ĺ åı· åĪĨ éļĶ , æ¯ıä¸ª æŀļ ä¸¾ å¸¸ éĩı éĥ½ æĺ¯ä¸Ģä¸ª å¯¹è±¡ ãĢĤ ĊĠĠĠ Ġ*/ ĊĊĠĠĠ Ġenum Ġclass ĠColor { ĊĠĠĠĠĠĠĠ ĠRED , BLACK , BLUE , GREEN , WHITE ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// 1 . 1 Ġ æŀļ ä¸¾ åĪĿå§ĭåĮĸ ĊĠĠĠ Ġ// æ¯ı ä¸Ģä¸ª æŀļ ä¸¾ éĥ½æĺ¯ æŀļ ä¸¾ ç±»çļĦ å®ŀä¾ĭ ï¼Į å®ĥä»¬ åı¯ä»¥ è¢« åĪĿå§ĭåĮĸ ï¼ļ ĊĊĠĠĠ Ġenum Ġclass ĠColor 1 ( val Ġrgb : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRED ( 0 xFF 0 0 0 0 ), ĊĠĠĠĠĠĠĠ ĠGREEN ( 0 x 0 0 FF 0 0 ), ĊĠĠĠĠĠĠĠ ĠBL UE ( 0 x 0 0 0 0 FF ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// 1 . 2 Ġé»ĺè®¤ åĲįç§° ä¸º æŀļ ä¸¾ åŃĹç¬¦ åĲį ï¼Į åĢ¼ ä»İ 0 å¼Ģå§ĭ ãĢĤ èĭ¥ éľĢè¦ģ æĮĩå®ļ åĢ¼ ï¼Į åĪĻ åı¯ä»¥ä½¿çĶ¨ åħ¶ æŀĦéĢł åĩ½æķ° ï¼ļ ĊĊĠĠĠ Ġenum Ġclass ĠShape ( value : Int ){ ĊĠĠĠĠĠĠĠ Ġo vel ( 1 0 0 ), ĊĠĠĠĠĠĠĠ Ġrectangle ( 2 0 0 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// 1 . 3 Ġ æŀļ ä¸¾ è¿ĺ æĶ¯æĮģ ä»¥ å£°æĺİ èĩªå·±çļĦ åĮ ¿ åĲį ç±» åıĬ çĽ¸åºĶ çļĦæĸ¹æ³ķ ãĢģ ä»¥åıĬ è¦ĨçĽĸ åŁº ç±» çļĦæĸ¹æ³ķ ãĢĤ å¦Ĥ ï¼ļ ĊĊĠĠĠ Ġenum Ġclass ĠProtocol State Ġ{ ĊĠĠĠĠĠĠĠ ĠWAIT ING Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsignal () Ġ= ĠT AL K ING ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠT AL K ING Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsignal () Ġ= ĠWAIT ING ĊĠĠĠĠĠĠĠ Ġ}; ĊĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġsignal (): ĠProtocol State ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// å¦Ĥæŀľ æŀļ ä¸¾ ç±» å®ļä¹ī ä»»ä½ķ æĪĲåĳĺ ï¼Į è¦ģ ä½¿çĶ¨ åĪĨ åı· å°Ĩ æĪĲåĳĺ å®ļä¹ī ä¸ŃçļĦ æŀļ ä¸¾ å¸¸ éĩı å®ļä¹ī åĪĨ éļĶ å¼Ģ ĊĊĠĠĠ Ġ// 1 . 4 Ġä½¿çĶ¨ æŀļ ä¸¾ å¸¸ éĩı ĊĠĠĠ Ġ// Kotlin Ġä¸ŃçļĦ æŀļ ä¸¾ ç±» åħ·æľī åĲĪ æĪĲ æĸ¹æ³ķ ï¼Į åħģè®¸ éģįåİĨ å®ļä¹ī çļĦ æŀļ ä¸¾ å¸¸ éĩı ï¼Į å¹¶ éĢļè¿ĩ åħ¶ åĲįç§° èİ·åıĸ æŀļ ä¸¾ å¸¸ æķ° ãĢĤ ĊĊĠĠĠ Ġenum Ġclass ĠEnum Class ( val Ġstring : ĠString ){ ĊĠĠĠĠĠĠĠ ĠEnum 1 (" abc "), ĊĠĠĠĠĠĠĠ ĠEnum 2 (" bcd ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ Ġtest Enum (){ ĊĠĠĠĠĠĠĠ Ġprintln ( Enum Class . valueOf (" abc ")) Ġ// Ġ è½¬æį¢ æĮĩå®ļ Ġname Ġä¸º æŀļ ä¸¾ åĢ¼ ï¼Į èĭ¥ æľª åĮ¹éħį æĪĲåĬŁ ï¼Į ä¼ļ æĬĽ åĩº IllegalArgumentException ĊĠĠĠĠĠĠĠ Ġprintln ( Enum Class . values ()) Ġ// Ġä»¥ æķ°ç»Ħ çļĦ å½¢å¼ı ï¼Į è¿ĶåĽŀ æŀļ ä¸¾ åĢ¼ ĊĊĠĠĠĠĠĠĠ Ġvar Ġcolor : Color = Color . BLUE ĊĊĠĠĠĠĠĠĠ Ġprintln ( Color . values ()) ĊĠĠĠĠĠĠĠ Ġprintln ( Color . valueOf (" RED ")) ĊĠĠĠĠĠĠĠ Ġprintln ( color . name ) ĊĠĠĠĠĠĠĠ Ġprintln ( color . ordinal ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* 1 . 5 Ġèİ·åıĸ æŀļ ä¸¾ çĽ¸åħ³ ä¿¡æģ¯ ï¼ļ ĊĊĠĠĠ Ġval Ġname : ĠString Ġ// èİ·åıĸ æŀļ ä¸¾ åĲįç§° ĊĠĠĠ Ġval Ġordinal : ĠInt Ġ// èİ·åıĸ æŀļ ä¸¾ åĢ¼ åľ¨ æīĢæľī æŀļ ä¸¾ æķ°ç»Ħ ä¸Ń å®ļä¹ī çļĦ é¡ºåºı */ ĊĊĠĠĠ Ġ// 1 . 6 Ġ èĩª Kotlin Ġ 1 . 1 Ġ èµ· ï¼Į åı¯ä»¥ä½¿çĶ¨ Ġenum Values < T >() ĠåĴĮ Ġenum ValueOf < T >() Ġåĩ½æķ° ä»¥ æ³Ľ åŀĭ çļĦæĸ¹å¼ı è®¿éĹ® æŀļ ä¸¾ ç±» ä¸ŃçļĦ å¸¸ éĩı ï¼ļ ĊĊĠĠĠ Ġenum Ġclass ĠRGB Ġ{ ĠRED , ĠGREEN , ĠBL UE Ġ} ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠEnum < T >> Ġprint All Values () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint ( enum Values < T >(). join ToString Ġ{ Ġit . name Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġtest Enum Constant () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint All Values < RGB >() Ġ// Ġ è¾ĵåĩº ĠRED , ĠGREEN , ĠBL UE ĊĠĠĠ Ġ} Ċ Ċ }