SORU
31 EKİM 2008, Cuma


İç içe Java numaralama tanımı statik olarak ilan bir fark yaratır mı?

Bir arayüzü var - burada bir örnek olarak güzel yapmacık bir versiyonu:

public interface Particle {

    enum Charge {
        POSITIVE, NEGATIVE
    }

    Charge getCharge();

    double getMass();

    etc...
}

Bu uygulamaları eğer statik olarak Charge numaralama ben tanımlanmışsa davranacağını orada herhangi bir fark - yani, herhangi bir etkisi yok bu

public interface Particle {

    static enum Charge {
        POSITIVE, NEGATIVE
    }

    Charge getCharge();

    double getMass();

    etc...
}

CEVAP
31 EKİM 2008, Cuma


Hayır, hiç fark etmez. Ancak sebebi Jon dediği gibi bir üye bir arayüz içinde bildirim olduğundan değil. Gerçek sebebi dil spec göre (8.9)

Numaralama türleri örtülü olarak iç içe geçmiş statik. İzin alır açıkça iç içe bir numaralandırma türü bildirmek statik olmak.

Aşağıdaki örnek, statik ya da herhangi bir fark yapmaz hiçbir arayüzü var olsa bile):

public class A {
  enum E {A,B};
}

public class A {
  static enum E {A,B};
}

Bir iç içe geçmiş bir başka örneközelnumaralama (dolaylı olarak) kamu değil.

public class A {
  private static enum E {A,B}
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Art Food Kitty - Kelly Eddington

    Art Food Kit

    7 Kasım 2006
  • Elly Awesome

    Elly Awesome

    15 ŞUBAT 2010
  • Manuel Vizcaino

    Manuel Vizca

    27 Mayıs 2008