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

  • Canceriansoul

    Canceriansou

    15 Ocak 2011
  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010