Sobes.tech
Junior

Java-da tip çevirmə (casting) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da tip çevirmə (casting) bir məlumat növünün dəyərinin başqa bir məlumat növünə çevrilməsidir.

Tip çevirmə növləri:

  • Aydın (Explicit Casting): Proqramçı (tip) operatorundan istifadə etməklə həyata keçirir. "Böyük" tiplərdən "kiçik" tiplərə çevirmə üçün istifadə olunur (məsələn, double-dən int-ə). Bu, məlumat itkisinə səbəb ola bilər.
    // avtomatik çevirmə (gizli)
    int a = 10;
    double b = a; // int-dən double-ə
    
    // aydın çevirmə (bəyannamə)
    double c = 10.5;
    int d = (int) c; // double-dən int-ə, d 10 olacaq
    
  • İmplicit (Aydın olmayan) Çevirmə (Widening Conversion): JVM tərəfindən avtomatik olaraq həyata keçirilir, "kiçik" tirdən "böyük" tərəyə çevirmə zamanı (məsələn, int-dən double-ə). Bu, təhlükəsizdir və məlumat itkisinə səbəb olmur.
    int x = 10;
    double y = x; // int avtomatik olaraq double-ə çevrilir
    

Tip çevirmə, primitiv tiplər və ya obyekt tipləri arasında və irs hierarhiyasında baş verə bilər.

Obyekt tipləri arasında çevirmə:

  • Upcasting: Alt sinfi onun supersinfinə çevirmək. Bu, implicit və təhlükəsizdir.
    class Animal {}
    class Dog extends Animal {}
    
    Animal animal = new Dog(); // Upcasting
    
  • Downcasting: Supersinfi onun alt sinfinə çevirmək. Aydın çevirmə tələb edir və ClassCastException-a səbəb ola bilər, əgər obyekt faktiki olaraq hədəf alt sinfinin nümunəsi deyilsə.
    Animal animal = new Dog(); // Upcasting
    
    // Downcasting - aydın çevirmə və instanceof yoxlaması ilə
    if (animal instanceof Dog) {
        Dog dog = (Dog) animal;
        // İndi Dog-ə xas metodlardan istifadə edə bilərik
    }