2 Mart 2012 Cuma

ENUM

JAVA.LANG.ENUM class-idir interface deyil.Normal classlar kimi .class file kimi compile olunur.
ENUM IS-A COMPARABLE


enum standalone application kimi run olunur.Enum class-da override olunmus toString() metodu enum sabitinnin adini qaytarir.


Enum basqa class veya enumu extend ede bilmir.


enum e=new enum(); // new keywordu ile yaradila bilmez.


public enum Color{

RED , GREEN
};

Enum-da ilk once enum sabitleri yazilmalidi.eger bu sabitlerden evvel nese yazilsa compile error verecek.yeni,


public enum Color{
int a=10;         //compile error
RED , GREEN
int a=10;         compile fine
};



enum e=enum.RED;
System.out.println(e instanceof Comparable);// Dogrudur
Enum deyisenleri constant oldugu ucun boyuk herfle yazilmalidir.hemde final static olur.
ENUM HECVAXT METODUN ICINDE TETBIQ OLUNA BILMEZ!


Enum class-in hem icinde hemde xaricinde islene biler.Eger class-in xaricinde islenerse o zaman ya public yada default olmalidir.eger PRIVATE veya PROTECTED olsa o zaman xeta verecek.

PRIVATE enum Color{ // xeta verecek.
RED , GREEN
};
Cass-in icinde islenen zaman bele private veya protected olsa xeta verecek.Meselen:

Class Test{
PRIVATE enum Color{
RED, GREEN
}
Color c;
}

Class Main{

public static void main(String [] args){
Test t=new Test();
t.c=Test.Color.RED; // bu setirde xeta verecek cunki enum private-dir.

Eger enum 1 class-in icinde islense o zaman hec 1 xeta olmaz.


Class Test{
PRIVATE enum Color{
RED, GREEN
}
Color c;
}
public static void main(String [] args){
Test t=new Test();
t.c=Test.Color.RED;
}
}

CONSOLE:
Cavab RED olacaq.

Maraqlidir amma enum-un constructoru PUBLIC ola bilmez.

enum Color{
RED, GREEN ; // constructor yazilacaqsa o zaman en sonda ; qoyulmalidir.qoyulmasa xeta verecek.

Color(){  //      eger constructorun qarsisinda public veya protected olsa o anda xeta verecek.
System.out.println("SALAM");
}
}
Color c;
public class Main{

public static void main(String [] args){
Main m=new Main();
m.c=Main.Color.RED;
System.out.print(m.c);
}
}

CONSOLE:
Burada constructor oldugu ucun enum deyerlerinin sayi ne qederdise constructor o qeder defe cagirilacaq en sonda ise enumun istediyimiz deyeri cagirilacaq.yeni SALAM SALAM RED olacaq netice.

interface-i implement ede biler.Constructor overload oluna biler.
ordinal() metodu enumda olan deyerlerin index-lerini gosterir.0-dan baslayir index.enumlar-da inheritance olmur.

3 yorum:

  1. Cox saqol Hale bu deyerli melumatlara görə, çox yararlı oldu mənim üçün. Hər kəs sənin kimi biliklərin paylaşsa her şey daha yaxşı olar.

    YanıtlaSil
  2. It is very interesting and helpful blog for beginners in Java :) I am sure it will help to students who are interested in developing himself in this field :) I am gonna share my feelings to my friends surely :) Good luck my friend

    YanıtlaSil
  3. Thank you mey dear Friends.i will try my best.

    YanıtlaSil