Java эсептөө



Enum Саноо Java

Java-дагы Enum - Энумерациянын кыска формасы. Java Enum классы биз өзгөртө албаган туруктуу сандар тизмесин аныктайт. Бул акыркы өзгөрмөгө окшош. Биз ар дайым Enum константаларын чоң тамга менен аныктайбыз. Бул макалада, биз Java кантип санап көрүүгө болот.

Java эсептөө

Enum жарыялоо синтаксиси (Enumeration)

Enum жарыялоо үчүн enum ачкыч сөзүн, андан кийин өзгөрүлмө колдонушубуз керек. Тармал кашаанын ичинде туруктууларды үтүр менен бөлүп жарыялайбыз.

enum Speed {
  SLOW, MEDIUM, FAST
}

Ылдамдык - Enum өзгөрмө аталышын билдирет

Тармал кашаанын ичиндеги маанилер Enum туруктуулугун билдирет.

Enum өзгөчөлүктөрү (Enumeration)

  • Энум константаларын ар дайым чоң тамга менен аныктоо керек
  • Класстын ичинде да, сыртында да enum жарыялай алабыз
  • Enum - бул класс жана ар бир туруктуу - enum түрүнүн объектиси.
  • Enum ичинде талааларды жана методдорду жарыялай алабыз
  • Ар бир енум константасы үтүр менен бөлүнөт жана эгерде энумда ошондой эле ыкмалар болсо, үтүрлүү чекит менен бүтүшү керек.

Java'дагы Enum туруктуу сандарына кирүү

Энум туруктуууна эки башка жол менен жете алабыз:

  • Enum өзгөрмөсүн түзүү: Enum өзгөрүлмөсүн ага enum константын ыйгаруу менен түзө алабыз. Бул өзгөрмөнү маанини басып чыгаруу үчүн колдонсок болот.
    enum Speed {
        SLOW, MEDIUM, FAST
      }
    Speed s = Speed.MEDIUM;
    System.out.println(d);
  • Enum атын колдонуу: Enum атын колдонуп, туруктуу контактка жете алабыз.
    enum Speed {
        SLOW, MEDIUM, FAST
      }
    System.out.println(Speed.SLOW);
    
    

Javaдагы Enum ичиндеги негизги ыкманы колдонуу

Эгерде биз Enum ичиндеги негизги ыкманы колдонсок, анда Enum программасын эч кандай класссыз түздөн-түз аткара алабыз.

public enum Speed {
  SLOW, MEDIUM, FAST;
  
  public static void main(String[] args) {
    System.out.println(Speed.MEDIUM);
    System.out.println(Speed.FAST);
  }
}
MEDIUM
FAST

Класстан тышкары Java Enum аныктамасы

Төмөндөгү мисалда көрүнүп тургандай, класстан тышкары enum жарыялоого болот.

enum Speed {
  SLOW, MEDIUM, FAST
}
public class Sample {

  public static void main(String[] args) {
    Speed s = Speed.SLOW;
    System.out.println(d);

  }

}
SLOW

Класстын ичинде Java Enum аныктамасы

Төмөндө класстын ичинде enum жарыялоонун мисалы келтирилген.

public class Sample {

  enum Speed {
    SLOW, MEDIUM, FAST
  }
  public static void main(String[] args) {
    Speed s = Speed.MEDIUM;
    System.out.println(d);

  }

}
MEDIUM

If-else билдирүүсүн колдонуп санап чыгуу

Ошондой эле, inum өзгөрмөсүн if-else төмөндөгү мисалдагыдай шарттуу билдирүү.

enum Speed {
  SLOW, MEDIUM, FAST
}
public class ConditionalEnum {

  public static void main(String[] args) {
    Speed s = Speed.MEDIUM;
    if(s == Speed.SLOW)
      System.out.println("Vehicle speed is slow");
    else if(s == Speed.MEDIUM)
      System.out.println("Vehicle speed is medium");
    else
      System.out.println("Vehicle speed is fast");

  }

}
Vehicle speed is medium

Коммутатордун билдирүүсүндө

Төмөндө аргумент катары өтүп, switch операторунун ичинде enum өзгөрмөлөрүн колдонуунун мисалы келтирилген. Окууга кызыкдар болушуңуз мүмкүн case case Java.

enum Speed {
  SLOW, MEDIUM, FAST
}
public class ConditionalEnum {

  public static void main(String[] args) {
    Speed s = Speed.MEDIUM;
    
    switch(s) {
    case SLOW:
      System.out.println("Speed is Slow");
      break;
    case MEDIUM:
      System.out.println("Speed is Medium");
      break;
    case FAST:
      System.out.println("Speed is Fast");
      break;
    }

  }

}
Speed is Medium

For циклинин жардамы менен enum баалуулуктарын кайталоо

Биз Java'дагы enum маанилери аркылуу a цикл үчүн хер бир енум стабилини чыкармак ве чап этмек. Ал enum туруктуусу аркылуу жарыяланган тартипте кайталанат. Окууга кызыкдар болушуңуз мүмкүн Java итератору.

enum Speed {
  SLOW, MEDIUM, FAST
}
public class Sample{

  public static void main(String[] args) {

    for(Speed s : Speed.values())
      System.out.println(s);
  }

}
SLOW
MEDIUM
FAST

Enum Methods

Java Enum классы ар башка ыкмалары баалуулуктарды алуу.

маанилер () - Бул ыкма enum жарыяланган бардык туруктуу маанилерин кайтарып берет.

valueOf () - Бул көрсөтүлгөн сап маанисинин enum туруктуусун кайтарат.

тартип () - массив индексине окшош enum туруктуу индексин табуу үчүн колдонулат.

Төмөнкү мисалда, баалуулуктарды жана алардын индексин алуу үчүн ар кандай Java enum колдоо ыкмаларын кантип колдонуу керектиги көрсөтүлгөн.

public class Test {
  enum Speed {
    SLOW, MEDIUM, FAST
  }

  public static void main(String[] args) {
    //Using values() method and ordinal method
    for(Speed s : Speed.values()) {
      System.out.println("Value: " + s + " Index: " + s.ordinal());
    }
    
    //Using valueOf() method
    System.out.println(Speed.valueOf("FAST"));

    //toString method
    Speed s = Speed.SLOW;
    System.out.println(s.toString());
  }

}
Value: SLOW Index: 0
Value: MEDIUM Index: 1
Value: FAST Index: 2
FAST
SLOW

Энум туруктуулугуна маани берүү

Биз Java enum туруктуулугуна баалуулуктарды колдонуп, инициализациялай алабыз курулуш. Enum ар бир enum туруктуусу үчүн чакырылуучу конструкторду камтышы мүмкүн. Enum конструкторлору демейки шартта жеке болуп саналат. Төмөндө конструкторлорду колдонуп, Java enum туруктуулугуна маанилерди инициалдаштыруунун мисалы келтирилген. Биз баалуулуктарга конструктордун ичинде инициализацияланган жеке талааны колдонуп кире алабыз.

public class Test {
  enum Speed {
    SLOW(15), MEDIUM(40), FAST(80);
    
    private int sp;
    private Speed(int sp) {
      this.sp = sp;
    }
  }

  public static void main(String[] args) {
    
    for(Speed s : Speed.values())
      System.out.println(s + ": " + s.sp);
    
  }

}
SLOW: 15
MEDIUM: 40
FAST: 80

Энум жана методдор

Энумдун ичиндеги ыкмаларды аныктай алабыз. Жавадагы enumдун талаалары да, ыкмалары да ар дайым болгондо, биз туруктуу адамдарды аягына чейин үтүрлүү чекит менен бүтүрүшүбүз керек. Энумдун ичинде кадимки жана абстрактуу методдорду аныктай алабыз.

Төмөндө энумдун ичиндеги жарыялоонун ыкмалары келтирилген.

public class EnumMethods {

  enum Speed {
    SLOW(10), MEDIUM(40), FAST(80);
    
    private int sp;
    
    Speed(int sp){
      this.sp = sp;
    }
    
    public int getSpeed() {
      return this.sp;
    }
  }
  public static void main(String[] args) {
    Speed s = Speed.SLOW;
    System.out.println(s + " :" + s.getSpeed());
    Speed s2 = Speed.FAST;
    System.out.println(s2 + " :" + s2.getSpeed());

  }

}
SLOW :10
FAST :80

Жавада кантип санап чыгуу керектиги жөнүндө окудук. Ошондой эле сизге кызыгышы мүмкүн EnumMap

шилтеме