|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.print.attribute.EnumSyntax
public abstract class EnumSyntax
EnumSyntax 클래스는, 모든 「형태 보증된 열거」객체의 일반적인 구현을 제공하는 추상 base class입니다. 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
내의 clone
Cloneable
public int hashCode()
Object
내의 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
Object
내의 toString
protected Object readResolve() throws ObjectStreamException
getEnumValueTable()
에 의해 반환된 열거치 테이블의 인덱스
i ~ L 에 포함된 열거의 단독치.
여기서, i 는 이 열거치의 정수치,
L 는 getOffset()
에 의해 반환된 값
ObjectStreamException
- 스트림이 직렬화 복원할 수 없는 경우
InvalidObjectException
- 열거치의 테이블이 null 의 경우,
이 열거치의 정수치가 열거치의 테이블의 요소에 대응하지 않는 경우,
또는 열거치의 테이블의 대응하는 요소가 null 의 경우,
throw 된다. 주:InvalidObjectException
는,
readResolve()
가 throw가 선언되었다
ObjectStreamException
의 서브 클래스이다protected String [] getStringTable()
getOffset()
에 의해 반환된 값, N 는 캐릭터 라인 테이블의 길이입니다. 인덱스 i ~ L 의 캐릭터 라인 테이블의 요소는, 정수치가 i 의 열거치에 대한 toString()
에 의해 반환된 값입니다. 상술의 범위의 정수치가 어느 열거치에서도 사용되지 않는 경우, 대응하는 테이블 요소는 null 대로 됩니다.
디폴트의 구현에서는 null 를 돌려줍니다. 열거 클래스 (EnumSyntax 클래스의 서브 클래스)가 null 이외의 캐릭터 라인 테이블을 돌려주기 위해서(때문에) 이 메소드를 오버라이드(override) 하지 않는 경우에, 이 서브 클래스가
메소드를 오버라이드(override) 하지 않으면 base class toString()
메소드에 의해 이 열거치의 정수치의 캐릭터 라인 표현이 돌려주어집니다.
toString()
protected EnumSyntax [] getEnumValueTable()
getOffset()
에 의해 반환된 값, N 는 열거치 테이블의 길이입니다. 인덱스 i ~ L 의 열거치 테이블의 요소는, 정수치가 i 의 열거치 객체입니다. readResolve()
메소드는, 열거 인스턴스의 직렬화 복원시에 단독의 시멘틱스를 보호하기 위해서 이것이 필요하게 됩니다. 상술의 범위의 정수치가 어느 열거치에서도 사용되지 않는 경우, 대응하는 테이블 요소는 null 대로 됩니다.
디폴트의 구현에서는 null 를 돌려줍니다. 열거 클래스 (EnumSyntax 클래스의 서브 클래스)가 null 이외의 열거치 테이블을 돌려주기 위해서(때문에) 이 메소드를 오버라이드(override) 하지 않는 경우에, 이 서브 클래스가
메소드를 오버라이드(override) 하지 않으면 base class readResolve()
메소드에 의해, 열거 인스턴스가 객체 입력 스트림로부터 직렬화 복원될 때 반드시 예외가 throw 됩니다.
readResolve()
protected int getOffset()
디폴트의 구현은 0 을 돌려줍니다. 열거 클래스 (EnumSyntax 클래스의 서브 클래스)가 0 이외로 시작되는 정수치를 사용하는 경우, 서브 클래스의 이 메소드를 오버라이드(override) 합니다.
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.