Sobes.tech
Junior

Java'da tip dönüşümü (casting) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da tip dönüşümü (casting), bir veri tipinin değerinin başka bir veri tipine dönüştürülmesidir.

Dönüşüm türleri:

  • Açık (Explicit Casting): Programcı tarafından (tip) operatörü kullanılarak yapılır. "Büyük" bir tipten "küçük" bir tipe dönüşüm için kullanılır (örneğin, double'dan int'e). Veri kaybına yol açabilir.
    // otomatik dönüşüm (gizli)
    int a = 10;
    double b = a; // int'ten double'a
    
    // açık dönüşüm (belli)
    double c = 10.5;
    int d = (int) c; // double'dan int'e, d 10 olur
    
  • İmplicit (Gizli) Dönüşüm (Widening Conversion): JVM tarafından otomatik olarak yapılır, "küçük" tipten "büyük" tipe dönüşümde (örneğin, int'den double'a). Güvenlidir ve veri kaybına yol açmaz.
    int x = 10;
    double y = x; // int otomatik olarak double'a çevrilir
    

Tip dönüşümü, temel tipler veya nesne tipleri arasında olabilir ve kalıtım hiyerarşisinde gerçekleşebilir.

Nesne tipleri arasında dönüşüm:

  • Upcasting: Alt sınıfın üst sınıfa dönüştürülmesi. Otomatik ve güvenlidir.
    class Animal {}
    class Dog extends Animal {}
    
    Animal animal = new Dog(); // Upcasting
    
  • Downcasting: Üst sınıfın alt sınıfa dönüştürülmesi. Açık dönüşüm gerektirir ve çalışma zamanında ClassCastException hatası verebilir, eğer nesne gerçekten hedef alt sınıfın örneği değilse.
    Animal animal = new Dog(); // Upcasting
    
    // Downcasting - açık dönüşüm ve instanceof kontrolü gerektirir
    if (animal instanceof Dog) {
        Dog dog = (Dog) animal;
        // Artık Dog'a özgü metodlar kullanılabilir
    }