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

  • hotstrikegently

    hotstrikegen

    26 AĞUSTOS 2011
  • isupportthegosselins

    isupporttheg

    6 Aralık 2009
  • NYCarspotter

    NYCarspotter

    26 EYLÜL 2011