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'danint'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'dendouble'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
ClassCastExceptionhatası 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 }