NİŞANTAŞI ÜNİVERSİTESİ NESNEye yönelİk PROGRAMLAMA TÜR DÖNÜŞÜMLERİ, OPERATÖRLER NİŞANTAŞI ÜNİVERSİTESİ © İktisadi, İdari ve Sosyal Bilimler Fakültesi iisbf.nisantasi.edu.tr
TÜR DÖNÜŞÜMLERİ Bir değeri, sahip olduğu türden(tipten) farklı türdeki bir değişkene atamak istediğinizde dönüşüm oluşur. Java, kuvvetli tipli (strongly-typed ) bir dil olduğundan, gerek ilkel gerek ise karmaşık türler arasındaki dönüşümlerle ilgili hem derleme hem de çalışma zamanında pek çok kontroller yapar.
TÜR DÖNÜŞÜMLERİ İlkel tipler arasında iki türlü dönüşüm olabilir, bir yapısı açısından: Daha küçükten daha büyüğe: Genişleten (widening) Daha büyükten daha küçüğe: Daraltan (narrowing) boolean tip ile ilgili hiçbir dönüşüm söz konusu değildir. byte ve short ile char arasında da bir dönüşüm olamaz çünkü byte ve short işaretli ama char işaretsizdir, Tamsayılar, rasyonel sayılara dönüştürülebilirler (çevirilebilirler).
Genİşleten (Widening) DÖNÜŞÜMLER Bit yapısı açısından daha dar bir türden daha geniş bir türe olan dönüşümlere denir. Java’da genişleten dönüşümler otomatik olarak yapılır, dönüşümün olması için atama yapmak dışında fazladan bir şeye gerek yoktur. Genişleten dönüşümler hiçbir zaman çalışma zamanı hatası vermezler.
Genİşleten (Widening) DÖNÜŞÜMLER Genişleten dönüşümler şunlardır:
Daraltan (NARROWING) DÖNÜŞÜMLER Bit yapısı açısından daha geniş bir türden daha dar bir türe olan çevirimlere denir. Daraltan dönüşümler şunlardır: Java’da daraltan dönüşümler otomatik olarak yapılmaz. Daraltan dönüşüm yapabilmek için dönüştürme operatörü (cast operator) olan "()“ kullanılır: Atama yapılırken, yeni tür, dönüştürme operatörü içine yazılır.
Daraltan (NARROWING) DÖNÜŞÜMLER Dönüşüm sonucunda bir veri kaybı olabilir. Rasyonel türlerden tamsayı türlerine yapılan çevirimlerde, en az önemli olan bitler kaybolur, Dolayısıyla, rasyonel sayının virgülden sonraki kısmı atılır. Dönüştürme operatörü kullanıldığında, çalışma zamanında bir hata oluşmaz.
ÖRNEK PROGRAM Genişleten (widening) dönüşüm örneği
ÖRNEK PROGRAM Daraltan (narrowing) dönüşüm örneği
INT-strIng dönüşümü int’i String’e dönüştürmek String’i int’e dönüştürmek
INT-strIng dönüşümü Integer.valueOf() ile Integer.parseInt() metotları arasında temel fark valueOf() metodu integer tipinde bir nesne,parseInt() metodu ise int tipinde bir veri tipi döndürür. parseInt() metodu temel veri tipi döndürdüğü için daha hızlı çalışır.(Aynı durum Byte.valueOf()-Byte.parseByte(),Short.valueOf()-Short.parseShort(),Long.valueOf()- Long.parseLong(),Float.valueOf()-Float.parseFloat(),Double.valueOf()-Doble.parseDouble() için de geçerlidir)
ÖRNEK PROGRAM Klavyeden girilen tamsayıyı tekrar ekrana yazdıran java programını yazınız.
ÖRNEK PROGRAM Klavyeden girilen tamsayının 5 fazlasını ekrana yazdıran java programını yazınız.
OPERATÖRLER Operatörler, değerler/değişkenler üzerinde yapılan işlemleri (operations) temsil eden sembollerdir. Tek değer için (unary), iki değer için (binary) ve üç değer için (tenary) olan operatörler vardır.
AtaMA(aktarma) OPERATÖRÜ Atama operatörü: = Atama operatörü bir değişkene değer atamak için kullanılır.
ARİTMETİK OPERATÖRLER Aritmetik operatörler aritmetik işlemleri yapmak için kullanılırlar. Toplama operatörü: + Çıkarma operatörü: - Çarpma operatörü: * Bölme operatörü: / Mod operatörü: %
ARTTIRMA VE AZALTMA OPERATÖRLERİ Arttırma operatörü: ++ Azaltma operatörü: -- Arttırma operatörü değeri 1 arttırır. Azaltma operatörü değeri 1 azaltır.
ARTTIRMA VE AZALTMA OPERATÖRLERİ Bu operatörler, değerlerin önüne ya da sonuna gelebilirler. Sonuna geldiğinde önce ifadedeki işlem yapılır, sonra bu operatörlerin işlemi yapılır. Önüne geldiğinde önce bu operatörlerin işlemi yapılır, sonra ifadedeki işlem yapılır.
KARŞILAŞTIRMA OPERATÖRLERİ Küçüktür operatörü: < Büyüktür operatörü: > Küçük-eşittir operatörü: <= Büyük-eşittir operatörü: >= Eşittir operatörü: == Eşit değildir operatörü: != Karşılaştırma operatörü: instanceof (sınıflar için)
KARŞILAŞTIRMA OPERATÖRLERİ Karşılaştırma operatörlerinin işlem sonucu mantıksaldır (TRUE ya da FALSE).
Mantıksal operatörler Değil (NOT) Operatörü: ! Ve (AND) Operatörü: & Veya (OR) Operatörü: | Sadece biri (XOR) Operatörü: ^ Koşullu ve (Conditional AND) Operatörü: && Koşullu veya (Conditional OR) Operatörü: ||
Mantıksal operatörler Mantıksal operatörler sadece mantıksal değerlere uygulanırlar. Değil operatörü, etki ettiği değer true ise false, false ise true sonucunu verir. Ve operatörü, etki ettiği iki değer de doğruysa true, en az bir değer yanlışsa false sonucunu verir. Veya operatörü, etki ettiği en az bir değer doğruysa true, iki değer de yanlışsa false sonucunu verir.
Mantıksal operatörler Koşullu ve operatöründe, hesaplanan ilk değer false ise ikinci değer hesaplanmaz. Koşullu veya operatöründe, hesaplanan ilk değer true ise ikinci değer hesaplanmaz
BİLEŞİK ATAMA OPERATÖRLERİ += -= *= /= %=
ŞART OPERATÖRÜ Mantıksal ifade ? Doğru için sonuç : Yanlış için sonuç Mantıksal bir ifadenin sonucunun doğru olması durumundaki sonuç ile yanlış olması durumundaki sonucun sırayla tek bir ifadede sonuçlandırılmasıdır.
OPERAtörlerin öncelİĞİ
OPERAtörlerin öncelİĞİ Operatörlerin önceliği, bir ifadede yer alan birden fazla operatörün hangi sırayla işleme alınacağını kontrol eder. Aynı öncelik sırasına sahip operatörler için işlem sırası soldan sağa doğrudur. Sadece atama operatörü, bileşik atama operatörleri ve şart operatörü için bu yön sağdan soladır.
KayNAKlar Yrd. Doç. Dr. Hilmi Küçük, Nesneye Yönelik Programlama, JAVA, Ders Notları http://www.mustafabektastepe.com/2012/04/11/java-da-veri-tipleri-degiskenler-tip- donusumleri/ http://tr.scribd.com/doc/51184084/3-Bolum-Java-n%C4%B1n-Temelleri