1. Overview
enumeration: Some methods at run time require that data not be arbitrary, but must be a range of values that can be used to resolve
2. The format of the enumeration
enum class Name { enumeration value}
Example
1 Package com.dhb.enumeration;2 3 /**4 * @author dshore/2018-6-215 *6 */7 enumsex{//enum class 8 //equivalent: public static final sex man=new sex ("male");9Man"male") {Ten @Override One Public voidrun () { ASystem. out. println ("men are running ."); - } - //equivalent: public static final sex woman=new sex ("female"); the},woman ("female") { - @Override - Public voidrun () { -System. out. println ("The woman is swimming ."); + } - }; + String value; A PrivateSex (String value) { at This. value=value; - } - //member functions - Public voidGetValue () { -System. out. println ("Value:"+value); - } in Public Abstract voidrun (); - } to + Public classDemo2 { - Public Static voidMain (string[] args) { theSex Sex=sex.man;//get enum Class object *Sex.value="male"; $Sex.getvalue ();//return value: MalePanax NotoginsengSex.run ();//return value: The man is running - } the}
3. Enumeration to note the details(Summary of the above example)
1. The enumeration class is also a special class.
2. The default modifier for enumeration values is public static final
3. The enumeration value is the type of the class that the enumeration value belongs to, and the enumeration value points to the object of this class
4. Enum class constructor method default modifier private
5. Enumeration classes can define their own member variables and member functions
6. An enumeration class can define its own constructor, and the constructor modifier alone must be private
7. Enumeration classes can have abstract methods, but enumeration values must implement abstract methods
8. The enumeration value must be in the first statement of the enumeration class
4. Example
Requirements: Define the gender of a user cannot be changed/instantiated arbitrarily
Mode 1: (without enumeration)
1 Package com.dhb.enumeration;2 3 /**4 * @author dshore/2018-6-215 *6 */7 classgender{//Customizing a gender category8 String value;9 Public StaticFinal Gender man=NewGender ("male");Ten Public StaticFinal Gender woman=NewGender ("female"); One A PrivateGender (String value) { - This. value=value; - } the } - - classperson{//Personnel category - PrivateString name; + PrivateGender sex; - PublicString GetName () { + returnname; A } at Public voidsetName (String name) { - This. Name =name; - } - PublicGender Getsex () { - returnsex; - } in Public voidsetsex (Gender sex) { - This. sex=sex; to } + } - the Public classDemo1 { * Public Static voidMain (string[] args) { $Person p=NewPerson ();Panax NotoginsengP.setname ("Zhang San"); - P.setsex (Gender.woman); theSystem. out. println ("Name:"+p.getname () +"\ t,"+p.getsex (). value);//return Value: Name: Zhang San, female + } A}
Mode 2: (with enumeration)
1 Package com.dhb.enumeration;2 3 /**4 * @author dshore/2018-6-215 *6 */7 enumgender{//Enum class8Man"male"), Woman ("female");9 String value;Ten PrivateGender (String value) { One This. value=value; A } - } - the classperson{//Personnel category - PrivateString name; - PrivateGender sex; - PublicString GetName () { + returnname; - } + Public voidsetName (String name) { A This. Name =name; at } - PublicGender Getsex () { - returnsex; - } - Public voidsetsex (Gender sex) { - This. sex=sex; in } - } to + Public classDemo1 { - Public Static voidMain (string[] args) { thePerson p=NewPerson (); *P.setname ("Zhang San"); $ P.setsex (Gender.woman);Panax NotoginsengSystem. out. println ("Name:"+p.getname () +"\ t,"+p.getsex (). value);//return Value: Name: Zhang San, female - } the}
Original Dshore Author's homepage:http://www.cnblogs.com/dshore123/ Source:https://www.cnblogs.com/dshore123/p/9210345.html Welcome reprint, reprint must explain the source. ( If this article is helpful to you, you can click on the lower right corner of the recommendation , or comments, thank you!) ) |
Java Base 42 Enumeration (Class)