Java’da Veri Tipi Dönüşümleri (Type Casting)
Java’da veri tipleri arasında geçiş yapmak oldukça yaygın bir işlemdir. Bu yazıda, “type casting” kavramını iki ana başlık altında inceleyecek; widening (genişletme) ve narrowing (daraltma) işlemlerini net örneklerle açıklayacağız.
Type Casting nedir?
Type casting, bir veri tipini başka bir veri tipine dönüştürme işlemidir.
Java’da iki tür type casting vardır:
- Widening Casting (Implicit) — Otomatik dönüşüm
- Narrowing Casting (Explicit) — Manuel dönüşüm
Widening (Implicit) Type Casting
Küçük veri tipinden daha büyük veri tipine dönüşüm.
Java bu işlemi otomatik yapar çünkü veri kaybı riski yoktur.
Örnek:
int num = 100;
long longNum = num; // int → long
float floatNum = longNum; // long → floatSıralama (küçük → büyük):
byte → short → int → long → float → double
Get Mehmet Reşit Çağan’s stories in your inbox
Join Medium for free to get updates from this writer.
Otomatik dönüşüm, genellikle matematiksel işlemler sırasında arka planda gerçekleşir.
Narrowing (Explicit) Type Casting
Büyük veri tipinden küçük veri tipine dönüşüm.
Bu işlem manuel olarak yapılır çünkü veri kaybı olabilir. Java, bu tür dönüşümde cast ifadesi ister.
Örnek:
double pi = 3.14159;
int intPi = (int) pi; // double → int, sonuç: 3// Küçükten büyüğe gidildiğinde overflow riski olabilir.
int large = 130;
byte b = (byte) large; // Sonuç: -126 → veri taşması (overflow)Burada int veri tipi byte aralığı dışındadır (-128 ile 127), bu yüzden sonuç hatalı olur.
Örnek: Kullanıcı Girdisinde Casting
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
int number = Integer.parseInt(input); // String → intSık Yaşanan Hatalar
- Float → Int dönüşümünde küsurat kaybolur.
- Büyükten küçüğe dönüşümde overflow/underflow olabilir.
- Casting işlemi türler arasında uyumlu değilse hata alınır:
String text = "123";
int num = (int) text; // Hatalı! Derlenmez.→ Bunun yerine: Integer.parseInt(text);
Type casting, Java programlamada hem çok sık kullanılan hem de hata yapmaya açık bir konudur. Otomatik dönüşümler işleri kolaylaştırsa da, manuel dönüşümlerde dikkatli olmak gerekir. Özellikle büyük veri tiplerini küçültürken oluşabilecek veri kayıplarına karşı önlem almak önemlidir.







