Sobes.tech
Junior

Java'da tur o'tkazish (casting) nima?

sobes.tech AI

AIdan javob

Java'da tip o'tkazish (casting) - bu bir ma'lumot turining qiymatini boshqa turga o'tkazish.

O'tkazish turlari:

  • Aniq (Explicit Casting): Dasturchi (tur) operatori yordamida bajaradi. Bu "katta" turdan "kichik" turga o'tkazishda ishlatiladi (masalan, double dan int ga). Bu ma'lumot yo'qotilishiga olib kelishi mumkin.
    // avtomatik o'tkazish (implicit)
    int a = 10;
    double b = a; // int dan double ga
    
    // aniq o'tkazish (belgilangan)
    double c = 10.5;
    int d = (int) c; // double dan int ga, d 10 bo'ladi
    
  • Qarama-qarshi o'tkazish (Implicit Casting / Widening Conversion): JVM tomonidan avtomatik amalga oshiriladi, "kichik" turdan "katta" turga o'tkazishda (masalan, int dan double ga). Bu xavfsiz va ma'lumot yo'qotilishiga olib kelmaydi.
    int x = 10;
    double y = x; // int avtomatik ravishda double ga o'tkaziladi
    

Tip o'tkazish primitive turlar yoki ob'ekt turlari o'rtasida bo'lishi mumkin va merosxo'rlik hierarhiyasida amalga oshiriladi.

Ob'ekt turlari o'rtasida o'tkazish:

  • Upcasting: Subklassani superklassaga o'tkazish. Bu implicit va xavfsiz.
    class Animal {}
    class Dog extends Animal {}
    
    Animal animal = new Dog(); // Upcasting
    
  • Downcasting: Superklassani subklassaga o'tkazish. Aniq o'tkazishni talab qiladi va ClassCastException xatosini ishga tushirishi mumkin, agar ob'ekt aslida maqsadli subklassaga tegishli bo'lmasa.
    Animal animal = new Dog(); // Upcasting
    
    // Downcasting - aniq o'tkazish va instanceof tekshiruvi bilan
    if (animal instanceof Dog) {
        Dog dog = (Dog) animal;
        // Endi Dog uchun xususiy metodlardan foydalanish mumkin
    }