Javaおよび関連するインタビューの質問の基本的な知識を列挙

:列挙の定義。
、新しい列挙データ型からコレクションは、Java5が開始静止物体を一定の複数の特別クラスを設けている。
定義フォーマット:
[修飾子]列挙型列挙型のクラス名
{
定数、B定数、定数C、S
}
我々のカスタム列挙型、(下部)コンパイラが直接クラスjava.lang.Enum、すべての親の列挙列挙から継承されています

二つの同値関係の列挙や一般的なクラス:
ここに画像を挿入説明
3つの列挙逆コンパイル後のクラス:
ここに画像を挿入説明
4つの列挙クラスの特徴:
①列挙直接の親java.lang.Enumが、列挙型を継承して表示することができません。
②列挙がクラスに相当し、あなたは、コンストラクタ、メンバ変数、メソッド、および一般的な抽象メソッドを定義することができます。
③デフォルトプライベート製造方法、すなわち、書込みアクセスが((プロテーゼコンストラクタはなく、基礎となる非引数コンストラクタ)プライベートではない。
④各インスタンスは、グローバル定数によって表されるオブジェクトのクラスが固定されている列挙、一例限られた数は、新しいキーワードを使用することはできません。
⑤列挙インスタンスは非常に列挙体を開始しなければならないで他のメンバーとインスタンスの列挙リストを分離した後、セミコロンがなければならない。
そこにかっこ列挙インスタンス⑥後にするとき例として、匿名内部クラスのオブジェクトの列挙クラスです。

ファイブ使用して列挙:
1):列挙は、グローバルパブリック静的定数は、直接クラス名の呼び出しを列挙するために使用することが可能です。
平日の日= Weekday.SATURDAY;
2):java.lang.Enumクラスは、すべての金があるので親クラスのため、すべての列挙オブジェクト列挙クラスのメソッドを呼び出すことができる。
文字列名=列挙オブジェクト.nameの(); // enum定数のオブジェクト名を返す
INT序=列挙オブジェクト.ordinal() ; //は0から出発して、列挙オブジェクトの数を返す
文字列=列挙オブジェクト.toString STRは、()戻り値:オブジェクトの定数名を列挙
3):トランスから静的メソッド列挙クラスコンパイラ生成(コンパイルされたコードを)である:
列挙型[]の値();
平日[] WS = Weekday.values()すべてのリターン;列挙型定電流を、カプセル化された配列を用いて、
列挙型のvalueOf(文字列名)、
平日昼間= Weekday.valueOf(「月曜日」); //は、現在の列挙定数と同じ名前で指定された名前の文字列クラスに変換します。
4):列挙がjava5を始め、スイッチも操作列挙型をサポートしています。
スイッチのみでサポート使用を基礎となる序列挙サポート列挙オブジェクトので、int型、および、まだタイプ序iは、(下に示すように)を入力し、NT。
ここに画像を挿入説明
5):列挙クラスを使用すると、シングルトンん:
列挙列挙モードの機能を使用するには、JVMは、セキュリティスレッドと単一のインスタンスを確実に私たちを助けるために(最適なモデルを実現シングルトン許可されています。問題。また、言葉遣いも特に簡単です。)

public enum Singleton {
    INSTANCE;
    public void doSomething() {
        System.out.println("doSomething");
    }
}

メソッドを呼び出します。

public class Main {
    public static void main(String[] args) {
        Singleton.INSTANCE.doSomething();
    }
}

これは、直接Singleton.INSTANCE.doSomething()の方法を通じて呼び出すことができます。便利な、シンプルで安全。

公開された99元の記事 ウォンの賞賛2 ビュー2627

おすすめ

転載: blog.csdn.net/weixin_41588751/article/details/105107101