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

  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • Xcode programming tutorials

    Xcode progra

    17 EYLÜL 2006