JAVAJava中的lang.Enum类

Enum类在java中存在。朗包。它是所有Java语言枚举类型的公共基类。有关枚举的信息,请参阅 java中的枚举

null

类别声明

public abstract class Enum<E extends Enum>
extends Object
implements Comparable, Serializable

正如我们所见,枚举是一个 摘要 同学们,所以我们 不能 创建类Enum的对象。

枚举类中的方法

Enum类提供了10个有用的方法。它们中的大多数都是从 对象 班这些方法在Enum类中声明为final,因此程序员不能修改任何Enum常量。

  1. 最终字符串名() :此方法返回此枚举常量的名称,该名称与其枚举声明中声明的名称完全相同。
    Syntax : 
    public final String name()
    Parameters : 
    NA
    Returns :
    the name of this enum constant
    

    // Java program to demonstrate name() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    {
    Color c1 = Color.RED;
    System.out.print( "Name of enum constant: " );
    // name method
    System.out.println(c1.name());
    }
    }

    
    

    输出:

    Name of enum constant: RED
    
  2. 最终整数序数() :此方法返回此枚举常量的索引。
    Syntax : 
    public final int ordinal()
    Parameters : 
    NA
    Returns :
    the ordinal of this enumeration constant
    

    // Java program to demonstrate ordinal() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    {
    Color c1 = Color.GREEN;
    System.out.print( "ordinal of enum constant " +c1.name()+ " : " );
    // ordinal method
    System.out.println(c1.ordinal());
    }
    }

    
    

    输出:

    ordinal of enum constant GREEN : 1
    
  3. String to字符串() :此方法返回表示此枚举常量的字符串对象。此方法与name()方法相同。
    Syntax : 
    public String toString()
    Parameters : 
    NA
    Returns :
    a string representation of this enumeration constant
    Overrides :
    toString in class Object
    

    // Java program to demonstrate toString() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    {
    Color c1 = Color.GREEN;
    // getting string representation of enum
    // using toString() method
    String str = c1.toString();
    System.out.println(str);
    }
    }

    
    

    输出:

    GREEN
    
  4. 最终布尔等于(对象obj) :如果指定的对象等于此枚举常量,则此方法返回true,否则返回false。
    Syntax : 
    public final boolean equals(Object obj)
    Parameters : 
    obj - the object too be compared for equality with this enum.
    Returns :
    true if the specified object is equal to this enum constant. 
    false otherwise
    Overrides :
    equals in class Object
    

    // Java program to demonstrate equals() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    {
    Color c1 = Color.RED;
    Color c2 = Color.GREEN;
    Color c3 = Color.RED;
    // checking equality between enums
    // using equals() method
    boolean b1 = c1.equals(c2);
    boolean b2 = c1.equals(c3);
    boolean b3 = c2.equals( null );
    System.out.println( "is c1 equal to c2 : " + b1);
    System.out.println( "is c1 equal to c3 : " + b2);
    System.out.println( "is c2 equal to null : " + b3);
    }
    }

    
    

    输出:

    is c1 equal to c2 : false
    is c1 equal to c3 : true
    is c2 equal to null : false
    
  5. final int hashCode() :此方法返回此枚举常量的哈希代码。实际上,这个方法只包含一条语句,即“return super.hashCode()”,它反过来调用对象类hashCode()方法。
    Syntax : 
    public final int hashCode()
    Parameters : 
    NA
    Returns :
    a hash code for this enum constant.
    Overrides :
    hashCode in class Object
    

    // Java program to demonstrate hashCode() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    {
    Color c1 = Color.RED;
    System.out.print( "hashcode of enum constant " + c1.name() + " : " );
    // hashcode method
    System.out.println(c1.hashCode());
    Color c2 = Color.GREEN;
    System.out.print( "hashcode of enum constant " + c2.name() + " : " );
    // hashcode method
    System.out.println(c2.hashCode());
    }
    }

    
    

    输出:

    hashcode of enum constant RED : 366712642
    hashcode of enum constant GREEN : 1829164700
    
  6. 最终国际比较(E obj) :此方法将此枚举与指定的对象进行“比较” 顺序 .枚举常量只能与同一枚举类型的其他枚举常量进行比较。
    Syntax : 
    public int compareTo(E obj)
    Parameters : 
    obj - the object to be compared.
    Returns :
    a negative integer if this object is at less ordinal than the specified object
    zero if this object is at equal ordinal than the specified object
    a positive integer if this object is at greater ordinal than the specified object
    Throws :
    NullPointerException - if the argument is null
    

    // Java program to demonstrate compareTo() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    {
    Color c1 = Color.RED;
    Color c2 = Color.GREEN;
    Color c3 = Color.RED;
    Color c4 = Color.BLUE;
    System.out.print( "Comparing " +c1.name()+ " with " + c2.name() + " : " );
    // compareTo method
    System.out.println(c1.compareTo(c2));
    System.out.print( "Comparing " +c1.name()+ " with " + c3.name() + " : " );
    // compareTo method
    System.out.println(c1.compareTo(c3));
    System.out.print( "Comparing " +c4.name()+ " with " + c2.name() + " : " );
    // compareTo method
    System.out.println(c4.compareTo(c2));
    // The following statement throw NullPointerException
    // as argument of compareTo method is null
    // System.out.println(c4.compareTo(null));
    }
    }

    
    

    输出:

    Comparing RED with GREEN : -1
    Comparing RED with RED : 0
    Comparing BLUE with GREEN : 1
    
  7. static T valueOf(类枚举类型,字符串名称) :此方法返回具有指定名称的指定枚举类型的枚举常量。该名称必须与用于在此类型中声明枚举常量的标识符完全匹配。
    Syntax : 
    public static <T extends Enum> T valueOf(Class enumType,String name)
    TypeParameters : 
    T - The enum type whose constant is to be returned
    Parameters : 
    enumType - the Class object of the enum type from which to return a constant
    name - the name of the constant to return
    Returns :
    the enum constant of the specified enum type with the specified name
    Throws :
    IllegalArgumentException - if the specified enum type has no 
    constant with the specified name or the specified class object
    does not represent an enum type
    NullPointerException - if enumType or name is null
    

    // Java program to demonstrate valueOf() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    {
    // getting value of enum with specified String
    // using valueOf method
    Color c1 = Color.valueOf( "RED" );
    Color c2 = Color.valueOf( "GREEN" );
    // name method
    System.out.println(c1.name());
    System.out.println(c2.name());
    // The following statement throw IllegalArgumentException
    // as GrEEN is not an enum constant
    //  Color c3 = Color.valueOf("GrEEN");
    // The following statement throw NullPointerException
    // as argument of valueOf method is null
    // Color c4 = Color.valueOf(null);
    }
    }

    
    

    输出:

    RED
    GREEN
    
  8. 最终类 getDeclaringClass() :此方法返回与此枚举常量的枚举类型对应的类对象。如果此方法为两个枚举常量e1和e2返回相同的类对象,则任意两个枚举常量e1和e2都属于相同的枚举类型。
    Syntax : 
    public final Class <E> getDeclaringClass()
    Parameters : 
    NA
    Returns :
    the Class object corresponding to this enum constant's enum type
    

    // Java program to demonstrate getDeclaringClass() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    enum Day
    {
    MONDAY, TUESDAY ;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    {
    // getting value of enum with specified String
    // using valueOf method
    Color c1 = Color.valueOf( "RED" );
    Color c2 = Color.valueOf( "GREEN" );
    Day d1 = Day.valueOf( "MONDAY" );
    Day d2 = Day.valueOf( "TUESDAY" );
    System.out.print( "Class corresponding to " + c1.name() + " : " );
    // getDeclaringClass method
    System.out.println(c1.getDeclaringClass());
    System.out.print( "Class corresponding to " + c2.name() + " : " );
    // getDeclaringClass method
    System.out.println(c2.getDeclaringClass());
    System.out.print( "Class corresponding to " + d1.name() + " : " );
    // getDeclaringClass method
    System.out.println(d1.getDeclaringClass());
    System.out.print( "Class corresponding to " + d2.name() + " : " );
    // getDeclaringClass method
    System.out.println(d2.getDeclaringClass());
    }
    }

    
    

    输出:

    Class corresponding to RED : class Color
    Class corresponding to GREEN : class Color
    Class corresponding to MONDAY : class Day
    Class corresponding to TUESDAY : class Day
    
  9. 最终对象克隆() :此方法保证从不克隆枚举,这是保持其“单例”状态所必需的。编译器在内部使用它来创建枚举常量。
    Syntax : 
    public final Object clone() throws CloneNotSupportedException
    Parameters : 
    NA
    Returns :
    NA
    Overrides :
    clone in class Object
    Throws :
    CloneNotSupportedException-if the object's class does not support the Cloneable interface.
    

    // Java program to demonstrate clone() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args)
    throws CloneNotSupportedException
    {
    System.out.println( "Enums are never cloned" );
    Test t = new Test()
    {
    // final clone method
    protected final Object clone()
    throws CloneNotSupportedException
    {
    return new CloneNotSupportedException();
    }
    };
    System.out.println(t.clone());
    }
    }

    
    

    输出:

    Enums are never cloned
    java.lang.CloneNotSupportedException
    
  10. 最终作废定稿() :此方法保证枚举类不能有finalize方法。
    Syntax : 
    protected final void finalize()
    Parameters : 
    NA
    Returns :
    NA
    Overrides :
    finalize in class Object
    

    // Java program to demonstrate finalize() method
    enum Color
    {
    RED, GREEN, BLUE;
    }
    public class Test
    {
    // Driver method
    public static void main(String[] args) throws Throwable
    {
    System.out.println( "enum classes cannot have finalize methods" );
    Test t = new Test()
    {
    // final finalize method
    protected final void finalize() throws Throwable
    {
    // empty implementation
    };
    };
    }
    }

    
    

    输出:

    enum classes cannot have finalize methods
    

本文由 高拉夫·米格拉尼 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享