Java enum & enum Sınıfı (Örneklerle)

Bu eğitimde, Java'daki numaralandırmalar hakkında bilgi edineceğiz. Örnekler yardımıyla enum ve enum sınıfları oluşturmayı ve kullanmayı öğreneceğiz.

Java'da, enum (numaralandırma için kısa), sabit bir sabit değerler kümesine sahip bir türdür. enumNumaralandırmaları beyan etmek için anahtar kelimeyi kullanırız. Örneğin,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Burada Size adında bir enum oluşturduk. SMALL, MEDIUM, LARGE ve EXTRALARGE sabit değerleri içerir.

Parantez içindeki bu değerlere enum sabitleri (değerler) adı verilir.

Not: Enum sabitleri genellikle büyük harfle gösterilir.

Örnek 1: Java Enum

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Main ( public static void main(String() args) ( System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); ) )

Çıktı

 KÜÇÜK ORTA

Yukarıdaki örnekten de görebileceğimiz gibi, sabit değerlere erişmek için enum adını kullanıyoruz.

Ayrıca, enum türlerinin değişkenlerini oluşturabiliriz. Örneğin,

 Size pizzaSize;

Burada pizzaSize, Boyut türünün bir değişkenidir. Yalnızca 4 değer atanabilir.

 pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;

Örnek 2: switch deyimiyle Java Enum

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Test ( Size pizzaSize; public Test(Size pizzaSize) ( this.pizzaSize = pizzaSize; ) public void orderPizza() ( switch(pizzaSize) ( case SMALL: System.out.println("I ordered a small size pizza."); break; case MEDIUM: System.out.println("I ordered a medium size pizza."); break; default: System.out.println("I don't know which one to order."); break; ) ) ) class Main ( public static void main(String() args) ( Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); ) )

Çıktı

 Orta boy pizza sipariş ettim.

Yukarıdaki programda, enum tipi Size oluşturduk. Daha sonra Boyut türünde pizzaSize değişkenini tanımladık.

Burada pizzaSize değişkeni yalnızca 4 değerle (SMALL, MEDIUM, LARGE, EXTRALARGE) atanabilir.

İfadeye dikkat edin,

 Test t1 = new Test(Size.MEDIUM);

Yapıcıyı Test()Test sınıfının içinde arayacaktır . Şimdi pizzaSize değişkeni, ORTA sabitiyle atanmıştır.

Değere bağlı olarak, switch case deyiminin durumlarından biri yürütülür.

Java'da Enum Sınıfı

Java'da, enum türleri özel bir sınıf türü olarak kabul edilir. Java 5 sürümüyle tanıtıldı.

Bir enum sınıfı, normal sınıflar gibi yöntemleri ve alanları içerebilir.

 enum Size ( constant1, constant2,… , constantN; // methods and fields )

Bir enum sınıfı oluşturduğumuzda, derleyici her enum sabitinin örneklerini (nesnelerini) oluşturur. Ayrıca, tüm enum sabiti her zaman public static finalvarsayılan olarak kullanılır.

Örnek 3: Java Enum Sınıfı

 enum Size( SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() ( // this will refer to the object SMALL switch(this) ( case SMALL: return "small"; case MEDIUM: return "medium"; case LARGE: return "large"; case EXTRALARGE: return "extra large"; default: return null; ) ) public static void main(String() args) ( // call getSize() // using the object SMALL System.out.println("The size of the pizza is " + Size.SMALL.getSize()); ) )

Çıktı

 Pizzanın boyutu küçük

Yukarıdaki örnekte Size enum sınıfı oluşturduk. SMALL, MEDIUM, LARGE ve EXTRALARGE olmak üzere dört sabiti vardır.

Size bir enum sınıfı olduğundan, derleyici her bir enum sabiti için otomatik olarak örnekler oluşturur.

Burada main()yöntemin içinde, yöntemi çağırmak için SMALL örneğini kullandık getSize().

Not : Normal sınıflar gibi, bir enum sınıfı da kurucular içerebilir. Daha fazlasını öğrenmek için Java enum yapıcısını ziyaret edin.

Java Enum Sınıfının Yöntemleri

Enum sınıflarında kullanıma hazır bazı önceden tanımlanmış yöntemler vardır.

1. Java Sıralaması sıra ()

ordinal()Yöntem, bir enum sabit pozisyonunu geri gönderir. Örneğin,

 ordinal(SMALL) // returns 0

2. CompareTo () numaralandır

compareTo()Yöntem, sıra değeri göre enum sabitleri karşılaştırır. Örneğin,

 Size.SMALL.compareTo(Size.MEDIUM) // returns ordinal(SMALL) - ordinal(MEDIUM)

3. Enum toString ()

toString()Yöntem enum sabitleri dize temsilini döndürür. Örneğin,

 SMALL.toString() // returns "SMALL"

4. Sıralama adı ()

name()Yöntem dizisi formunda bir numaralama sabitinin tanımlanan adını verir. name()Yöntemden döndürülen değer final. Örneğin,

 name(SMALL) // returns "SMALL"

5. Java Enum valueOf ()

The valueOf() method takes a string and returns an enum constant having the same string name. For example,

 Size.valueOf("SMALL") // returns constant SMALL.

6. Enum values()

The values() method returns an array of enum type containing all the enum constants. For example,

 Size() enumArray = Size.value();

Why Java Enums?

In Java, enum was introduced to replace the use of int constants.

Suppose we have used a collection of int constants.

 class Size ( public final static int SMALL = 1; public final static int MEDIUM = 2; public final static int LARGE = 3; public final static int EXTRALARGE = 4; )

Here, the problem arises if we print the constants. It is because only the number is printed which might not be helpful.

So, instead of using int constants, we can simply use enums. For example,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

This makes our code more intuitive.

Also, enum provides compile-time type safety.

If we declare a variable of the Size type. For example,

 Size size;

Burada değişkenin dört değerden birini tutacağı garanti edilir. Şimdi, bu dört değerden farklı değerler aktarmaya çalışırsak, derleyici bir hata oluşturacaktır.

Ilginç makaleler...