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

  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • CruzerLite

    CruzerLite

    1 EKİM 2011
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009