Java’da Tip Dönüşümü (Type-Casting)

java tip dönüşümü , type casting

Tip dönüşümü bir veri tipinin başka bir veri tipine dönüştürülmesidir.Örneğin elinizde String tipinde ifade var ve siz bu String tipinde ifade üzerinde matematiksel işlemler yapmak istiyorsunuz.Bunun için bu String ifadeyi int , float gibi matematiksel veri tiplerine dönüştürmeniz gerekiyor.

Ya da elinizde olan bir float tipinde değişkenin virgülden sonraki kısmını kullanmak istemediğiniz zaman int veri tipine çevirmeniz gerekecek.Java bir çok veri tipinde bu tür değişimlere olanak tanıyan fonksiyonlar ve kalıp kullanımlar mevcut.

int deger;
float pi=3.14;
deger=pi;  // Yanlış Kullanım
deger=(int) pi ; // Doğru Kullanım

Integer’i Stringe Çevirme

Integer veri tipine tip dönüşümü uygularken String ifadeye çevirme birden fazla yolla yapılabilmektedir.Aşağıda örnekle bir kaç şekilde nasıl yapıldığını göstermeye çalıştık.

int sayi = 96 ;
String yenisayi1=String.valueOf(sayi);   // 1.Yöntem
String yenisayi2=sati + "";              // 2.Yöntem
String yenisayi3=Integer.toString(sayi); //3.Yöntem

String İfadeyi Integer’a Dönüştürme

String ifadelerde Integer veri tipine dönüştürebiliriz.

String sayi="112";
int yenisayi1=Integer.valueOf(sayi);
int yenisayi2=Integer.parseInt(sayi);

Yukarıdaki kullanımlardaki Integer.valueOf() ve Integer.parseInt() metotları aynı işe yarasalar da aslında yaptıkları uyguladıkları şey farklıdır.Bildiğimiz gibi primitif tipler new anahtar kelimesini kullanmadan oluşturabildiğimiz int , float , double gibi yapılardır.Integer.valueOf integer tipinde bir nesne döndürürken , Integer.parseInt() int veri tipinde bir primitif döndürür.Bu yüzden parseInt() kullanımı bir miktar daha hızlıdır.Fakat bu hız fark edilemeyecek kadar küçüktür.Bu kullanımlar String ve diğer sayısal veri tipleri dönüşümleri içinde aynen geçerlidir.


Double ve Float’ın Stringe Dönüştürülmesi

double birincisayi=2.11;
float ikincisayi=9.36F;
String sayi1=String.valueOf(birincisayi);  //ilk yöntem
String sayi2=""+ikincisayi;                //ikinci yöntem
String sayi3=Float.toString(ikincisayi);   //üçüncü yöntem
String sayi4=Double.toString(birincisayi); //dördüncü yöntem

String’in Double ve Float Tipine Dönüşümü

String ilkdeger="10.25";
double dsayi1=Double.valueOf(s1);
souble dsayi2=Double.parseDouble(s1);
float fsayi1=Float.valueOf(s1);
float fsayi1=Double.parseDouble(s1);

Java Nesnelerin Tip Dönüşümü

Java’da tip arası dönüşümün yanında sınıflardan türetilen nesnelerinde dönüşümü yapılabiliyor.Bu aşağıdaki örnekle açıklamaya çalışalım.

class Hayvanlar {
}

class Aslan extends Hayvanlar{
}

public class ObjectCasting {
  public static void main(String args[]) {
    Hayvanlar ilkhayvan;
    Aslan yavruaslan = new Aslan();
    ilkhayvan = yavruaslan;        // Burada ilk hayvan daha oluşturulmadığı için böyle bir atama yapılabilir
    ilkhayvan = new Hayvanlar();
    //yavruaslan = ilkhayvan;     // Bu tanımlama yanlıştır , çünkü new anahtar kelimesi ile Hayvanlar türünden bir hayvan oluştu.Bu şekilde bir atama yapılamaz.( Compile-time error, incompatible type hatası )
    yavruaslan = (Aslan) ilkhayvan;   // Eğer bu şekilde bir tanımla yaparsak kodumuz doğru bir şekilde çalışacaktır.Nesne oluştuktan sonra atama yapılmak istenirse parantez içinde tip belirtilmelidir.
  }
}

Bildiğimiz gibi Java’da yeni bir nesne oluştururken new anahtar kelimesini kullanıyoruz.Eğer Sınıfadı nesneadı şeklinde bir tanımla ile nesne referansı oluşturursak direk olarak atama işlemi yapabiliriz.Ancak new kullandıktan sonra nesne belli bir sınıf ait olduğu için parantez içinde dönüştürülen tip belirtilmelidir.Böylece dönüşüm başarı ile tamamlanmış olur.

Daha detaylı bilgiye Oracle sitesi üzerinde ulaşabilirsiniz.Java‘da tip dönüşümleri genel olarak böyle.Object casting konusu hakkında yazımızı da okuyabilirsiniz.

Aklınıza takılan bir soru varsa yorum olarak belirtin.Başka sonraki yazıda görüşmek dileğiyle.

Mert İnal

Programlamayı ve teknoloji seviyorum.Kocaeli Üniversitesi Bilgisayar Mühendisliği 3.sınıf öğrencisiyim.Bu siteyi programlama konusunda Türkçe içerik biriktirmek ve eksik olduğum konuları yazarak öğrenmek üzerine kurduk.Kodlar.Net ekibi zengin içerikler ile bir programlama arşivi biriktirmeyi hedefler.

One thought to “Java’da Tip Dönüşümü (Type-Casting)”

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir