javaエニュメレーション類の構造関数の実例について詳しく説明します。
javaエニュメレーション類の構造関数の実例について詳しく説明します。
まず、次の例を示します。
エニュメレート・タイプを作成するには、enumキーワードを使用して、作成されたタイプはすべてJava.lang.Enum類のサブクラスです。エニュメレート・タイプは汎用モードClass Eum<E extends Eum>に適合し、Eはエニュメレート・タイプの名前のそれぞれの値がprotected Eum(String name,int ordinal)構造関数にマッピングされます。
簡単に言えば、エニュメレート・タイプのエニュメレート・値は一回のコンストラクタを呼び出すことに対応しています。本題の中の三つのエニュメレーションの値はここで特に強調されます。
列挙値はデフォルトのstatic(静的なクラス定数)で、各クラスの定数に対して構造関数を追加します。AcceountType.FIXEDはエニュメレーション値を使用していますが、作成されていません。だから全部で3回です。
まず、次の例を示します。
enum AccountType
{
SAVING, FIXED, CURRENT;
private AccountType()
{
System.out.println(“It is a account type”);
}
}
class EnumOne
{
public static void main(String[]args)
{
System.out.println(AccountType.FIXED);
}
}
Terminal出力:
It is a account type
It is a account type
It is a account type
FIXED
分析:エニュメレート・タイプを作成するには、enumキーワードを使用して、作成されたタイプはすべてJava.lang.Enum類のサブクラスです。エニュメレート・タイプは汎用モードClass Eum<E extends Eum>に適合し、Eはエニュメレート・タイプの名前のそれぞれの値がprotected Eum(String name,int ordinal)構造関数にマッピングされます。
簡単に言えば、エニュメレート・タイプのエニュメレート・値は一回のコンストラクタを呼び出すことに対応しています。本題の中の三つのエニュメレーションの値はここで特に強調されます。
列挙値はデフォルトのstatic(静的なクラス定数)で、各クラスの定数に対して構造関数を追加します。AcceountType.FIXEDはエニュメレーション値を使用していますが、作成されていません。だから全部で3回です。
public class Test {
public static void main(String[] args) {
weekday mon = weekday.mon;
weekday tue = weekday.tue;
weekday thus = weekday.thus;
weekday fri = weekday.fri;
}
public enum weekday {
mon(), tue(2), wes(3), thus(), fri;
private weekday() {
System.out.println("no args");
}
private weekday(int i) {
System.out.println("have args " + i);
};
}
}
Terminal出力:
no args
have args 2
have args 3
no args
no args
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。