2010-07-16 20 views
5

Bir enum değişkenini sınıf üyesi olarak bildirmem gerekiyor ve bir java fasulyesi gibi bir ayarlayıcı ve getter tanımlamanız gerekiyor. Böyle bir şey -Java çekirdeğinde enum değişkeni bildir

public class Vehicle { 
private String id; 
private String name; 
enum color { 
    RED, GREEN, ANY; 
} 
// setter and getters 
} 

Şimdi, diğer bazı sınıftan kırmızı, yeşil ya da herhangi bir şekilde renk özelliğini ayarlamak istediğiniz ve bu doğrultuda kararlar almasını istiyoruz.

+0

Bu bir soru değil! :) –

cevap

13

enum kamuoyuna açıklanması olacaktır dış dünya tarafından görülmesini:

Sonra
public class Vehicle { 
    private String id; 
    private String name; 

    public enum Color { 
     RED, GREEN, ANY; 
    }; 

    private Color color;  

    public Color getColor(){ 
     return color; 
    } 

    public void setColor(Color color){ 
     this.color = color; 
    } 

    } 

Yapabileceğiniz paketin dışından:

vehicle.setColor(Vehicle.Color.GREEN); 

eğer sadece Vehicle ile aynı paket içinde Vehicle.Color kullanmak gerekir publicenum beyannamesi kaldırabilirsiniz.

+0

Enum kullanımında iyi olduğunuzu tahmin edin bana şu bağlantıdan yardım edebilir misiniz: http: //stackoverflow.com/q/14252822/1503130 – Prateek

2

color enum ile çalışmak istiyorsanız, bildirimini yaptığınızdan daha geniş bir şekilde paylaşmak zorundasınız. En basit olan public'u Araçta enum color'un önüne koymak olabilir.

Sonraki, enum'un türünün bir alanını bildirmeniz gerekiyor. Enumun adını color'dan Color'a değiştirmenizi öneriyorum çünkü temelde bir sınıf. Ardından, diğer alanlarınızla birlikte bir alan bildirebilirsiniz: private Color color. Enum ve özellikle sabitlerini başka bir sınıftan kullanmak için, enum aracın içinde yuvalanmış olduğunu bilmeniz gerekir. Öyle, bütün isimleri nitelemek gerekir:

Vehicle.Color myColor = Vehicle.Color.RED; 

Bakkal nazikçe ben bahsettiğini çoğunu göstermek için kod yazmıştır. Detaylar için cevabına bakın!

+0

onunla tanıştığıma memnun oldum :) – bakkal

+2

Fotoğraf ve seni rahatsız etmek istemedi;) –