| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.print.attribute.EnumSyntax
public abstract class EnumSyntax
类 EnumSyntax 是一个抽象的基类,它提供所有“类型安全枚举”对象的公共实现。扩展类 EnumSyntax 的枚举类提供一组枚举值(对象),它是该枚举类的单一实例;例如:
     public class Bach extends EnumSyntax {
         public static final Bach JOHANN_SEBASTIAN     = new Bach(0);
         public static final Bach WILHELM_FRIEDEMANN   = new Bach(1);
         public static final Bach CARL_PHILIP_EMMANUEL = new Bach(2);
         public static final Bach JOHANN_CHRISTIAN     = new Bach(3);
         public static final Bach P_D_Q                = new Bach(4);
         private static final String[] stringTable = {
             "Johann Sebastian Bach",
              "Wilhelm Friedemann Bach",
              "Carl Philip Emmanuel Bach",
              "Johann Christian Bach",
              "P.D.Q. Bach"
         };
         protected String[] getStringTable() {
             return stringTable;
         }
         private static final Bach[] enumValueTable = {
             JOHANN_SEBASTIAN,
              WILHELM_FRIEDEMANN,
              CARL_PHILIP_EMMANUEL,
              JOHANN_CHRISTIAN,
              P_D_Q
         };
         protected EnumSyntax[] getEnumValueTable() {
             return enumValueTable;
         }
     }
 
然后,可以写入使用 == 和 != 运算符的代码,以测试枚举值;例如: 
 
     Bach theComposer;
     . . .
     if (theComposer == Bach.JOHANN_SEBASTIAN) {
         System.out.println ("The greatest composer of all time!");
     }
 
枚举类的 equals() 方法仅为相同的对象 (==) 执行测试。 
 
通过调用 toString()
实际上,枚举值就是一个整数,枚举类中每个枚举值都有一个不同的整数。通过调用 getValue()EnumSyntax(int)
可以定义枚举类的子类,该枚举类会使用其他枚举值对它进行扩展。子类的枚举值的整数值不必与超类的枚举值的整数值不同;==、!=、equals() 和 toString() 方法仍将正常运行,即使子类使用一些与超类相同的整数值。但是,使用枚举类和子类的应用程序在超类和子类中可能需要具有不同的整数值。 
 
| 构造方法摘要 | |
|---|---|
| protected  | EnumSyntax(int value)使用给定的整数值构造一个新枚举值。 | 
| 方法摘要 | |
|---|---|
|  Object | clone()返回此枚举值的一个副本,该副本保留了枚举值的语义,它是与此枚举值相同的对象。 | 
| protected  EnumSyntax[] | getEnumValueTable()返回此枚举值的枚举类的枚举值表。 | 
| protected  int | getOffset()返回此枚举值的枚举类使用的最小整数值。 | 
| protected  String[] | getStringTable()返回此枚举值的枚举类的字符串表。 | 
|  int | getValue()返回此枚举值的整数值。 | 
|  int | hashCode()返回此枚举值的哈希码值。 | 
| protected  Object | readResolve()在对象输入过程中,将此反序列化的枚举实例转换为枚举属性类中定义的适当枚举值。 | 
|  String | toString()返回对应于此枚举值的字符串值。 | 
| 从类 java.lang.Object 继承的方法 | 
|---|
| equals, finalize, getClass, notify, notifyAll, wait, wait, wait | 
| 构造方法详细信息 | 
|---|
protected EnumSyntax(int value)
value - 整数值。| 方法详细信息 | 
|---|
public int getValue()
public Object clone()
Object 中的 cloneCloneablepublic int hashCode()
Object 中的 hashCodeObject.equals(java.lang.Object), 
Hashtablepublic String toString()
Object 中的 toString
protected Object readResolve()
                      throws ObjectStreamException
getEnumValueTable()getOffset()ObjectStreamException - 如果无法对流反序列化
InvalidObjectException - 如果枚举值表为 null,此枚举值的整数值与枚举值表中的元素不对应,或枚举值表中的对应元素为 null,则抛出该异常。(注:InvalidObjectException 是 ObjectStreamException 的一个子类,ObjectStreamException 由 readResolve() 声明抛出。protected String[] getStringTable()
getOffset()toString()
默认实现返回 null。如果枚举类(类 EnumSyntax 的子类)不重写此方法,以返回非 null 字符串表,并且子类不重写 toString()toString()
protected EnumSyntax[] getEnumValueTable()
getOffset()readResolve()
默认实现返回 null。如果枚举类(类 EnumSyntax 的子类)不重写此方法,以返回非 null 枚举值表,并且子类不重写 readResolve()readResolve()
protected int getOffset()
默认实现返回 0。如果枚举类(类 EnumSyntax 的子类)使用以非 0 开始的整数值,则重写子类中的此方法。
| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。