SORU
12 EYLÜL 2009, CUMARTESİ


Çeteleler yeni öğeler eklemek için alt edebilir mi?

Aşağıdaki gibi: varolan bir numaralandırma ve daha fazla öğe eklemek istiyorum

enum A {a,b,c}

enum B extends A {d}

/*B is {a,b,c,d}*/

Bu mümkün Java mı?

CEVAP
12 EYLÜL 2009, CUMARTESİ


Çeteleler Olası değerlerin tam bir numaralandırma temsil eder. (İşe yaramaz) cevap hayır.

Gerçek bir sorun örneği olarak hafta içi, hafta sonu gün, birlik, haftanın günleri. -Gün-hafta içinde her gün tanımlayabiliriz ama sonra özellikleri de hafta içi ve hafta sonu günler için özel temsil etmek mümkün olmaz.

Bunu, hafta içi arasında bir eşleme ile üç numaralama türleri yapabiliriz ne hafta sonu gün ve gün.

public enum Weekday {
    MON, TUE, WED, THU, FRI;
    public DayOfWeek toDayOfWeek() { ... }
}
public enum WeekendDay {
    SAT, SUN;
    public DayOfWeek toDayOfWeek() { ... }
}
public enum DayOfWeek {
    MON, TUE, WED, THU, FRI, SAT, SUN;
}

Alternatif olarak, bir-gün-hafta için açık uçlu bir arayüz yapabiliriz:

interface Day {
    ...
}
public enum Weekday implements Day {
    MON, TUE, WED, THU, FRI;
}
public enum WeekendDay implements Day {
    SAT, SUN;
}

Ya iki yaklaşım kombine edebiliriz:

interface Day {
    ...
}
public enum Weekday implements Day {
    MON, TUE, WED, THU, FRI;
    public DayOfWeek toDayOfWeek() { ... }
}
public enum WeekendDay implements Day {
    SAT, SUN;
    public DayOfWeek toDayOfWeek() { ... }
}
public enum DayOfWeek {
    MON, TUE, WED, THU, FRI, SAT, SUN;
    public Day toDay() { ... }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • Kassem G

    Kassem G

    25 EKİM 2006
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012