NESNE YÖNELİMLİ PROGRAMLAMA – HAFTA # 2 Yrd.Doç.Dr.Hacer Karacan Java Temel Söz Dizimi • • • • • • • • Sınıf Tanımlama Kod Blokları Metod Tanımlama Değişken Tanımlama İlkel Veri Tipleri ve Operatörler Operatörlerin Öncelikleri String (Dizgi) Sınıfı Belgeleme ve Program Yazma Tarzı Sınıf ve Nesne • Her sınıfın sıfır veya daha fazla örnegi vardır. • Sınıf statik, nesne dinamiktir. • Nesneler program kosturuldugunda sınıf tanımından dinamik olarak yaratılırlar (“construction”). • Nesneler sorumluluklarını tamamladıklarında ortadan kaldırılırlar (“destruction”). • Nesnenin sınıfı sabittir ve nesne bir kez yaratıldıktan sonra degistirilemez. Her oluşturulan nesne için bellekte yer ayrılır ve bilgiler ayrılan bu alanda tutulur. Nesneye ayrılan bellek alanına kolaylıkla ulaşabilmek için her bir nesneye referans denilen benzersiz bir numara atanır. Web Teknolojileri Papatya 2004 Kitap _____________________ ____________________________ kitabınAdınıGöster() kitapAdı kitabınSayfaSayısı() KİTAP A yayınEvi basımTarihi kitabınAdınıGöster() kitabınSayfaSayısı() Java ile Temel Programlama Seçkin 2005 _____________________ kitabınAdınıGöster() kitabınSayfaSayısı() KİTAP B Sınıf Tanımlama • Java‟da bir sınıf tanımında aşağıdaki ifadeler kullanılabilir: ▫ ▫ ▫ ▫ ▫ ▫ Erişim Belirleyici Class anahtar kelimesi Sınıf Adı Değişken Tanımları Yapılandırıcılar Metodlar <erişim_belirleyici> class <SinifAdi> { <degisken_tipi> d1; <degisken_tipi> d2; ... <donus_tipi> <metodAdi> ( // parametre listesi <parametre_tipi> p1, <parametre_tipi> p2, …) { … } <donus_tipi> <metodAdi> ( // parametre listesi <parametre_tipi> p1, <parametre_tipi> p2, …) { … } } public class Kapı { //Değişkenler static int yükseklik; int durumu; String rengi; float derinliği; … // Metodlar int getDurum (int rentId) { … } … } Kod Blokları • Kod blokları yazılan kodların kapsamını belirtmek üzere kullanılırlar. Kod blokları genellikle şu amaçlar için kullanılır ▫ Sınıfın kapsamını belirtmek için ▫ Metodun kapsamını belirtmek için ▫ Döngü ve karar yapılarının kapsamını belirtmek için. Metod Tanımlama • Metodlar daima bir sınıf içerisinde tanımlanırlar. Bir metod tanımında aşağıdaki yapılar kullanılır. ▫ Erişim Belirleyici: Metodu diğer nesnelerin kullanıp kullanamayacağını belirleyen anahtar kelemedir. ▫ Dönüş Değerinin Türü: Metodun icrası sonucu metodtan bir değer bekleniyorsa bu değerin tipinin belirtilmesi gerekir. Bu dönüş tipi ilkel değişken olabileceği gibi bir nesne değişkeni de olabilir. Eğer metodun icrası sonucu bir değer beklenmiyorsa dönüş tipi alanına void anahtar kelimesi yazılır. ▫ Metod Adı: Metodu çağırabilmek için diğer bir değişle kullanabilmek için metoda bir isim verilmelidir. ▫ Parametreler: Metodlar işlevleri esnasında dışarıdan değerler alabilirler. Dışarıdan alınan bu değerlere parametre denilmektedir. Parametre sayısı birden çok ise parametreler virgüllerle ayrılarak yazılırlar. Metodlar parametre almaya da bilirler bu durumda ise parantez içleri boş bırakılır. Metod Tanımlama <Erişim Belirleyici> <Dönüş Tipi> <metodAdi> ([parametreler]) { <yapılacak işler> } public float kutleHesapla (int yariCap){ // metod değişkenleri float ozKutle; float PI_SAYISI=3,14; float kutle; // metod gövdesi ozKutle = ozKutleyiVer(); kutle= ozKutle*4*PI_SAYISI*Math.pow(yariCap,3.0); return kutle; } Java’da her komut satırı, noktalı virgül ile sonlanır! Metod Tanımlama • Metodlar yalnızca sınıfların içerisinde tanımlanırlar bundan dolayı da metodları kullanabilmek için o sınıftan türetilmiş nesnelere ihtiyaç duyarız. Bir metodu şu şekilde çağırırız: nesneAdı.metodAdı(); yazıcı.çıktıAl(); yazıcı.çıktıAl(rekli); gibi • Sınıf bloğunda yer alan metodları tanımlamak için sadece sınıf isimleri kullanılmaz. Sınıfa ait metodları bir birinden ayırmak için sınıf isminin yanında parametreleri de kullanılır. ▫ Bu sayede sınıf içerisinde aynı isimli birden fazla metod bulunabilir. Ancak hem ismi aynı hem de aynı parametreleri çağıran birden çok metod tanımlanamaz. Ekrana yazı yazılması Ekrana yazı yazdırmak için System.out.println() ve System.out.print() metotları kullanılır. System.out.println() ekrana yazdıktan sonra alt satıra geçer, System.out.print() ise alt satıra geçmez. Aşağıda örnek kodlar verilmiştir. System.out.print(“JAVA ”); System.out.print(“PROGRAMLAMA”); Çıktı: JAVA PROGRAMLAMA System.out.println(“JAVA ”); System.out.print(“PROGRAMLAMA”); Çıktı: JAVA PROGRAMLAMA Ekrana yazı yazılması String yazi = “Java ile Programlama”; System.out.print(yazi); Çıktı: Java ile Programlama int a = 5; double b = 2.5; boolean c = true; char d = „?‟; System.out.println(a); System.out.println(b); Çıktı: System.out.println(c); 5 System.out.println(d); 2.5 true ? Ekrana yazı yazılması Çıktı: 5 17 a = 5, a+b = 517 a+b = 22 517 5 17 26 a = 13, b =17, c =4 int a = 5, b = 17, c = 4; System.out.println(a); System.out.println(b); System.out.print(“a = ” + a); System.out.println(“, a+b =” + a + b); System.out.println(“a+b =” + (a + b)); System.out.print(a + b + “ “); System.out.print(a + “ “ + b + “ “); //a,b,c nin tümü integer olduğundan toplanır. System.out.print(a + b + c); a = b - c; System.out.println(“a = ” + a + “, b = “ + b + c = ” +c); “, Ekrana yazı yazılması System.out.println(5); System.out.println(); System.out.print(28); Çıktı: 5 >> Boş satır 28 Örnek class Merhaba { public static void main(String args[]) { System.out.println(“Merhaba"); System.out.println(“Burasi bir alt satir." ); System.out.println(“println daima bir alt satıra gecer." ); System.out.println(“ Bu uzun bir metin. Bu nedenle“ + “ programin icinde satirlara dagittik. “ + “ Ancak, cift tirnaklar icinde duran ve aralarinda + olan “ + “ metinler println icin tek parca sayilir.”); System.out.println(“Buraya sayi da yazabiliriz: “ + 12345 ); System.out.println(“Yine arada + kullandik." ); } } Ekran Çıktısı : Merhaba Burasi bir alt satir. println daima bir alt satıra gecer. Bu uzun bir metin. Bu nedenle programin icinde satirlara dagittik. Ancak, cift tirnaklar icinde duran ve aralarinda + olan metinler println icin tek parca sayilir. Buraya sayi da yazabiliriz: 12345 Yine arada + kullandik. Metotların Çağırılması Sınıf içinde tanımlanan metotlar nesneler kullanılarak çağırılabilir. İki tür metot vardır: değer döndüren metotlar değer döndürmeyen metotlar Geri değer döndüren metotlarda dönecek verinin türü metot tanımında verilir. Değer döndürülecek yerde de return komutu kullanılır. double numara; numara = Math.random(); Geri değer döndürmeyen metotlarda ise metot tanımında void kullanılır ve return komutu kullanılmaz. System.out.println(“Ekrandaki mesaj”); Metodlara Değer Gönderme Metod dışarıdan (çağırıldığı yerden) girdi alabilir. Metod adının yanında parantez içinde alacağı değişkenlerin adları ve türleri bildirilir. Değer döndürmeyen ve değer döndüren metodlar dışarıdan parametre alabilir. public döndürülen_değer_türü metod_adi(param_türü1 param_adı1, param_türü2 param_adı2, ...) { - - } Metodlara Değer Gönderme • Bir metod hiç parametre almayabileceği gibi birden fazla paremetre de kabul edebilir. • Metod tanımlanırken her parametrenin değişken türü yanında belirtilir. public void kitapBilgileriniAl(String pKitapAdı, String pYayinEvi, Date pBasımTarihi ){ kitapAdı= pKitapAdı; yayinEvi= String pYayinEvi; basımTarihi= pBasımTarihi; } Metodlara Değer Gönderme import java.util.Scanner; public class VeriYolla { public int veriYazdir(String mesaj) { int say; System.out.println("Gelen mesaj:"+mesaj); say = mesaj.length(); return say; } } Metodlara Değer Gönderme class DeneVeriYolla { public static void main(String [] args) { VeriYolla veri = new VeriYolla(); String ileti; int sembolSayisi; Scanner klavye = new Scanner(System.in); ileti = klavye.next(); sembolSayisi = veri.veriYazdir(ileti); System.out.println("Sembol sayisi="+sembolSayisi); } } Çıktı: Java >> Klavyeden girildi Gelen mesaj:Java Sembol sayisi=4 Metodlardan Değer Döndürme • Metodlar çalıştırılmaları sonucu bir değer yada ifade geri döndürebilirler. Metod tanımlanırken metodun bize bir değer dönmesini istiyorsak bu dönecek değerin hangi türde olduğunu dönüş tipinde belirtmemiz gerekmektedir. Örneğin kitap sınıfına ait bir nesnenin satış bedelini hesaplayan bir metodu şu şekilde yazarız. public float satisFiyatiHesapla(float maliyet){ float fiyat=0.0; fiyat=maliyet+maliyet*0.18; // maliyete %18 kdv eklenir return fiyat; } • Metodlar ilkel değişkenler yanında nesne referansları da döndürebilir. public String kitabinIsmi(){ return kitapAdi; } • Return değer döndürür & metodu sonlandırır this Parametresi Bir metodun içinden, ait olduğu sınıftaki başka bir metot veya değişkene ulaşılmak isteniyorsa this parametresi kullanılabilir. import java.util.Scanner; public class VeriYolla2 { public String mesaj; public int veriYazdir() { int say; System.out.println("Gelen mesaj:" + this.mesaj); say = mesaj.length(); return say; } } this Parametresi class DeneVeriYolla { public static void main(String [] args) { VeriYolla2 veri = new VeriYolla2(); String ileti; int sembolSayisi; Scanner klavye = new Scanner(System.in); ileti = klavye.next(); veri.mesaj = ileti; sembolSayisi = veri.veriYazdir(); System.out.println("Sembol sayisi=" + sembolSayisi); } Çıktı: } Java >> Klavyeden girildi Gelen mesaj:Java Sembol sayisi=4 Anahtar Sözcükler ▫ Özel amaçlı anahtar sözcükler özel tanıtıcılardır ve programın tanımlanmasını kontrol etmek için Java dili tarafından kullanılmaktadır. ▫ Yerleşik türleri, değiştiricileri ve akış kontrolü için mekanizmayı tanıtmak için kullanır. ▫ Toplam 59 tane özel amaç için ayrılmış sözcüktür. ▫ İşletmen ve ayırıcıların sözdiziminin birleştirilmesi ile oluşturulmuş olan bu anahtar sözcükler, Java dilinin tanımlanmasını biçimlendirir. ▫ Bu anahtar sözcükler yalnızca istenen amaca hizmet ederler ve bir değişken, bir sınıf ya da bir metod adı için tanıtıcı olarak kullanılamazlar. Anahtar Sözcükler abstract boolean break byte byvalue case cast catch char class const continue default do doule else extenhds false final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while Değişken Nedir? • Bir Java programında temel bellek birimi değişkenlerdir. Bir tanıtıcı, tür ve kapsam birleşerek bir değişkeni tanımlayabilir. • Bir değişken aşağıdaki şekilde ifade edilebilir: • <tür tanıtıcı> <degiskenAdi1>, <degiskenAdi2>,... ; int x, y, z; x, y ve z olan üç tamsayıyı bildirir. int a = 3, b, c = 5; a ve c’nin başlangıç değerleriyle üç tamsayıyı daha bildiriyor. byte z=2z; z’i çalıştırır. double pi= 3.14159; Pi sayısını (tam olmasa da yaklaşık olarak) bildirir. char x='x'; x değişkeni 'x' değerine sahip. Değişken Tipleri ▫ Özel Değişkenler 6 tane sayısal değişken 1 tane karakter değişkeni 1 tane Boolean değişkeni Varsayılan (default) değerler ▫ Kullanıcı Tanımlı Değişkenler Sınıflar Arayüzler Diziler Değişken Tanımlama • Java‟da değişken tanımlama, C, pascal gibi daha eski nesil programlama dillerine nazaran daha esnek tutulmuştur. Bu esneklik dahilinde değişkenler kullanılırken şunlara dikkat edilmelidir: ▫ Değişkenler sınıf içerisinde metodların dışarısında kalan alanların herhangi bir yerinde tanımlanabilir, ▫ Değişkenler metodlar içerisinde kullanmadan önce tanımlanmalıdır. ▫ Genelde değişken blokları sınıf bloklarının başında tanımlanır. ▫ Değişkenlerin geçerliliği tanımlandıkları blokla sınırlıdır. ▫ Metod değişkenlerini kullanmadan önce ilk değerleri atanmalıdır. ▫ Sınıf değişkenlerinin ilk değerleri otomatik olarak atanır. Değişken Tanımlama • Java‟da değişken tanımlamak için önce tanımlanacak değişkenin tipi yazılır. Ardından tanımlanacak değişkene verilecek ad yazılır. “=” işareti eklendikten sonra, eşitliğin sağ tarafı isteğe göre iki şekilde yazılabilir: ▫ new + değişken tipini yazıp parantez içinde çift tırnaklar kullanarak değişkenin değerini yazarak, String degiskenAdi = new String(”deger”); ▫ Sadece çift tırnaklar içinde değişkenin başlangıç değerini yazarak. String degiskenAdi = “deger”; • Başlangıç değeri vermediğimiz durumda varsayılan (default) değeri devreye girecektir. değişken tiplerinin Değişken Tanımlama • Değişken isimleri harfleri, rakamları, '_' ya da '$' karakterlerini içeren fakat rakamlar ile başlamayan şekilde tanımlanır. • Anahtar kelimeler değişken olarak kullanılamaz. Doğru Yanlış a item_Cost itemCost _itemCost item$Cost itemCost2 item#Cost item-Cost item*Cost abstract 2itemCost Global / Yerel Değişkenler • Değişkenler global ve yerel olarak iki sınıfa ayrılırlar: ▫ Global olarak adlandırılan değişkenlere programın her yerinden ulaşılabilir. ▫ Yerel değişkenlere ise sadece bulundukları program bloğundan ulaşılabilir. class Kiralama { public int sayi; // global değişken public void Ekle() { float fiyat = 3.50F; // yerel değişken int gun = 3; // yerel değişken } } Sayısal İfadeler • Sayısal ifadenin sonucunu saklamak isterseniz, sayısal türde bir değişken hazırlanması gerekir. • İki tane sayısal tür vardır: ▫ tamsayılar olarak bildiğimiz tam değerli sayılar ▫ virgüllü sayılar dediğimiz kesirli kısımları saklanan sayılar • Toplam 6 sayısal ifade vardır: ▫ Tam Değerli Sayılar için; long int short byte ▫ Kesirli Sayılar için; double float Adı long Genişliği 64 int 32 short byte 16 8 Aralığı -9,223,372,036,854,775,808'den 9,223,372,036,854,775,807'e -2,147,483,648'den 2,147,483.647'e -32,768'den 32.767'e -128'den 127'e Adı double float Genişliği 64 32 Aralığı 1.7e-308’den 1.7e+308’e 3.4e-038’den 3.4e+038’e Sayısal Olmayan İfadeler • Sayısal olmayan türler boolean ifadeler, karakterler ve string ifadelerden oluşur. Adı Değerler Boolean True False Char „a‟ String “Merhaba” Operatörler • Java operatörleri özel karakterlerdir. • Bu karakterler, operatör üzerinde yapmak istediğiniz bir işlemi derleyiciye yöneltir. • İşlem komutları operatörler tarafından belirlenir. • Java‟ da 4 çeşit operatör bulunmaktadır: ▫ ▫ ▫ ▫ Atama Operatörleri Aritmetiksel Operatörler İlişkisel Operatörler Mantıksal Operatörler Aritmetiksel Operatörler Operatör Sonuç + toplama - Çıkarma * çarpma / bölme % mod Örnek class TemelMatematik { public static void main(String args[]) { int x=2+2; int y = x * 3; int z=y/2; int k =-z; System.out.println("x ="+ x); System.out.println("y = " + y); System.out.println("z = " + z); System.out.println("k = " + k); } } Ekran Çıktısı : x=4 y = 12 z=6 k = -6 class Modül { public static void main(String args[ ]) { int x = 42; double y = 42.3; System.out.println("x mod 10 = " + x % 10); System.out.println("y mod 10 = " + y % 10); } } Ekran Çıktısı: x mod 10 = 2 y mod 10 = 2.3 İlişkisel Operatörler Operatör Sonucu == Eşittir != Eşit değil > -den büyük < -den küçük >= -den büyük ya da eşit. <= -den küçük ya da eşit Mantıksal Operatörler ▫ Tüm ikili mantıksal operatörler iki boolean değeri birleştirir ve sonuç yine bir boolean değer olur. Operatör Sonucu & Bit Seviyesinde AND | Bit Seviyesinde OR ^ Bit Seviyesinde XOR || Mantıksal OR && Mantıksal AND ! Mantıksal NOT Örnek class Mantık{ public static void main (String args [ ]) { boolean a = true; boolean b = false; boolean c = a||b; boolean d = a && b; boolean e = a ^ b; boolean f = (!a && b) | (a && !b); boolean g = !a; System out.println(" a ="+a); System out.println(" b ="+b); System out.println(" a||b ="+c); System out.println(" a && b ="+d); System out.println(" a ^ b ="+ e); System out.println(" !a&&b||a&&!b ="+f); System out.println(" !a ="+g); } } Ekran Çıktısı: a = true b = false a || b = true a && b = false a ^ b = true !a&&b||a&&!b= true !a = false Atama Operatörleri Operatör Kullanılış Şekli Eşittir += değişken1 += değişken2 değişken1 = değişken1 + değişken2 -= değişken1-= değişken2 değişken1 = değişken1 – değişken2 *= değişken1*= değişken2 değişken1 = değişken1 * değişken2 /= değişken1/= değişken2 değişken1 = değişken1 / değişken2 %= değişken1%= değişken2 değişken1 = değişken1 % değişken2 &= değişken1&= değişken2 değişken1 = değişken1 & değişken2 |= değişken1|= değişken2 değişken1 = değişken1 | değişken2 ^= değişken1^= değişken2 değişken1 = değişken1 ^ değişken2 <<= değişken1<<= değişken2 değişken1 = değişken1 << değişken2 >>= değişken1>>= değişken2 değişken1 = değişken1 >> değişken2 değişken1>>>= değişken2 değişken1 = değişken1 >>> değişken2 >>>= Çoğaltma ve azaltma işleçleri public class ArtirmaIleAzaltma { public static void main (String [] args) { int sayi = 5; System.out.println(sayi); sayi++; System.out.println(sayi); sayi--; System.out.println(sayi); } Çıktı: } 5 6 5 Çoğaltma ve azaltma işleçleri ++ ve -- operatörleri değişkenlerin önüne de yazılabilir. public class ArtirmaIslemOnceligi { public static void main (String [] args) { int x = 5; int sayi = x; x++; System.out.println(“sayi = “ + sayi); System.out.println(“x = “ + x); Çıktı: System.out.println(sayi++); sayı = 5 System.out.println(++sayi); x = 6 5 } 7 } Çoğaltma ve azaltma işleçleri ++ ve -- operatörleri bir değişkene aynı anda birden fazla uygulanamaz. Aşağıdaki yazımlar yanlıştır: ++sayi++; ++++sayi; sayi++--; (sayi++)++; public class Main { public static void main(String[] args) { int a=1, b=-2, c=0, d=3, e=50; //Mod Operatörü System.out.println("30 un mod 7 ye göre degeri " + 30%7); //2 //Aritmetik Atama Operatörü System.out.println("b+=5 nin degeri " + (b+=5) ); //3 System.out.println("c*=5 nin degeri " + (c*=5) ); //0 //Arttırma Azaltma Operatörleri System.out.println("a++ nin degeri " + a++); //1 System.out.println("a nin degeri " + a); //2 System.out.println("++a nin degeri " + ++a); //3 System.out.println("a nin degeri " + a); //3 //Iliskisel Operatorler ve Kısa Devre Iliskisel Operatörler System.out.println("a b den büyükse veya d sıfır degilse " + ((a>b) | d!=0)); //true //Kısa devre iliskisel operatorler System.out.println("a b ye esit ve c d ye esit degil mi " + ((a==b) && (c!=d))); //false //? Operatoru int Sonuc=((a!=b) && !(c>e)) ?10:20; System.out.println("a b ye esit degilse ve c e den büyüksenin degili dogruysa sonuc 10 degilse 20 " + Sonuc); //10 } } Ekran Çıktısı (a=1, b=-2, c=0, d=3, e=50) 30 un mod 7 ye göre degeri 2 b+=5 nin degeri 3 c*=5 nin degeri 0 a++ nin degeri 1 a nin degeri 2 ++a nin degeri 3 a nin degeri 3 a b den büyükse veya d sıfır degilse true a b ye esit ve c d ye esit degil mi false a b ye esit degilse ve c e den büyüksenin degili dogruysa sonuc 10 degilse 20 10 ,, Operatörlerin Öncelikleri Operatörler Tip [] () Parantez ++ - ! ~ Bir işlem */% Çarpan +- Toplam < > <= >= Karşılaştırma == != Eşitlik ?: Durumsal = += -= /= %= Atama Operatörlerin Öncelikleri Matematik işlemlerinin Java’da gösterimi. Matematik işlemi Java’da gösterimi E = mc2 E = m * c * c; (3a+b) / 2(y-3) (3 * a + b) / (2 * (y - 3)) 1+ (1 / (1 + 1 /(1 + 1 / 2))) 1 + (1 / (1 + (1 / 1 + ( 1/ 2)))) String (Dizgi) Sınıfı String bir karakter dizgisidir. String Java’nın temel veri türlerinden değildir ve sınıf olarak tasarlanmıştır. Aşağıda örnekler verilmiştir. String ileti = “Gazi Üniversitesi”; System.out.print(ileti); veya System.out.print(“Gazi Üniversitesi”); Çıktı: GaziÜniversitesi Dizgilerin eklenmesi İki dizginin ardarda eklenmesi + ile yapılır. Aşağıda örnek verilmiştir. String birinciParca = “Gazi”; String ikinciParca = “Üniversitesi”; String gaziCeng = birinciParca + ikinciParca + “ Bilgisayar Mühendisliği”; System.out.print(gaziCeng); Çıktı: GaziÜniversitesi Bilgisayar Mühendisliği Dizgilerin boyutunun bulunması Dizgilerin uzunluğunu bulmak için dizgi sınıfının length() metodu kullanılır. Aşağıda örnek verilmiştir. int uzunluk = “GAZİ ÜNV.”.length(); System.out.print(uzunluk); veya String gazi = “GAZİ ÜNV.”; int uzunluk = gazi.length(); System.out.println(uzunluk); Çıktı: 9 Dizgi metotları Metot İşlevi .toLowerCase() Dizgi küçük harfe çevrilir. String ileti = “MERHABA”; String küçükHarfli = ileti.toLowerCase(); // merhaba olur .toUpperCase() Dizgi büyük harfe çevrilir. String ileti = “merhaba”; String küçükHarfli = ileti.toUpperCase(); // MERHABA olur Dizgi metotları Metot İşlevi .substring(Başlangıç) Dizgide Başlangıçtan sonuna kadar kopyalama yapar. String ileti = “merhaba”; String parca = ileti.substring(4); // aba olur .substring(Başlangıç, Son) Dizgide Başlangıçtan Sona kadar kopyalama yapar. String ileti = “merhaba”; String parca = ileti.substring(1, 4); // erh olur Dizgi metotları Metot İşlevi .indexOf(Bir Dizgi) Bir Dizgi‟yi arar varsa bağlangıç sırasını yoksa -1 değerini döndürür. String ileti = “müdür müdür müdür?”; int mudurNerede = ileti.indexOf(“müdür”); // mudurNerede değişkeninin değeri 0 olur Dizgi metotları Metot İşlevi .indexOf(Bir Dizgi, Başlangıç) Bir Dizgi‟yi Başlangıç‟tan itibaren arar varsa bağlangıç sırasını yoksa -1 değerini döndürür. String ileti = “müdür müdür müdür?”; int mudurNerede = ileti.indexOf(“müdür”, 4); // mudurNerede değişkeninin değeri 6 olur Dizgi metotları Metot İşlevi lastIndexOf(Bir Dizgi) Bir Dizgi‟yi sondan itibaren arar varsa bağlangıç sırasını yoksa -1 değerini döndürür. String ileti = “müdür müdür müdür?”; int mudurNerede = ileti.lastIndexOf(“müdür”, 4); // mudurNerede değişkeninin değeri 12 olur Dizgi metotları Metot İşlevi .trim() Dizginin başındaki ve sonundaki boşlukları siler. String ileti = “ merhaba ”; int bosluklarAtilmis = ileti.trim(); // bosluklarAtilmis değişkeninin değeri “merhaba” olur Dizgi metotları Metot İşlevi .charAt(Konum) Dizgide yer alan konum numaralı karakteri geri verir. String ileti = “merhaba”; char konumdakiKarakter = ileti.charAt(3); // konumdakiKarakter değişkeninin değeri “h” olur .compareTo(Bir Dizgi) Bir Dizgi ile karşılaştırma yapılır. Küçükse – değer, eşitse 0 ve büyükse + değer döndürür. String ileti = “merhaba”; int esitlik = ileti.compareTo(“merhaba”); // esitlik değişkeninin değeri 0 olur String (Dizgi) Sınıfı import java.util.Scanner; public class StringDenemesi { public static void main (String [] args) { String isim, baslik, altIsim; Scanner klavye = new Scanner(System.in); isim = klavye.next(); System.out.print (“Isimdeki harf sayisi = ”); System.out.println(isim.length()); System.out.println(isim.toLowerCase()); baslik = “ JAVA ”; System.out.println(baslik); System.out.println(baslik.trim()); System.out.println(isim.charAt(0)); altIsim = isim.substring (3); System.out.println(altIsim); altIsim = isim.substring (0,4); System.out.println(altIsim); int nerede = isim.indexOf (“TURK”); System.out.println(nerede); } } String (Dizgi) Sınıfı Çıktı: // Klavyeden TÜRKİYE stringi okunmuştur Isimdeki harf sayısı = 7 turkiye JAVA JAVA T KIYE TURK 0 equals ve equalsIgnoreCase metotları equals() iki dizginin eşit olup olmadığını kontrol eder. equalsIgnoreCase() ise karşılaştırma sırasında büyük küçük harf ayrımına bakmaz. İki string eşitse true değilse false döner. public class EqualsDenemesi { public static void main (String [] args) Çıktı: { true String birinci = “GAZİ”; false String ikinci = “ÜNV.”; true String ucuncu = “ünv.”; true System.out.println(birinci.equals(birinci)); System.out.println(birinci.equals(ikinci)); System.out.println(ikinci.equalsIgnoreCase(ucuncu)); System.out.println(ikinci.equals(ucuncu.toUpperCase())); } } String (Dizgi) Sınıfı - Örnek import java.util.*; public class StringIslemleri { public static void main (String [] args) { String isim, baslik, altIsim; int nerede; Scanner klavye = new Scanner(System.in); System.out.println(“Bir cumle giriniz...”); isim = klavye.nextLine(); System.out.print (“Bu cumlede bosluklar dahil ”); System.out.println(isim.length() + “ karakter var.”); System.out.print (“Cumlenin buyuk harfle yazilmis ”); System.out.println(“hali...”); System.out.println(isim.toUpperCase()); baslik = “ GAZİ ÜNV. ”; System.out.println(“Baslik: ” + baslik); System.out.print (“Basligin trimden sonraki hali: ”); System.out.println(baslik.trim()); String (Dizgi) Sınıfı - Örnek altIsim = isim.substring(3); System.out.println(“Alt baslik: ” + altIsim); altIsim = isim.substring(1,5); System.out.println(“Alt baslik: ” + altIsim); nerede = isim.lastIndexOf(“N”); System.out.print (“N'nin bulundugu son konum: ”); System.out.println(nerede); } } Çıktı: Bir cümle giriniz... GAZİ Ünv. // klavyeden girilmiştir Bu cümlede boşluklar dahil 9 karakter var. Cümlenin büyük harfle yazılmış hali... GAZİ ÜNV. Baslik: GAZİ ÜNV. Basligin trimden sonraki hali:GAZİ ÜNV. Alt baslik: İ ÜNV. Alt baslik: AZİ Ü N‟nin bulunduğu son konum: 6 Özel karakterler Java’da bazı karakterler dizgi içerisinde işlem yapar. Metot İşlevi \” “ işaretinin String içinde kullanımı \‟ „ işaretinin String içinde kullanımı \\ \ işaretinin String içinde kullanımı \n String içinde yeni satıra geçilir \r String içinde satır başına geçilerek yazmaya devam eder \t String içinde sekme (tab) yapar String (Dizgi) Sınıfı Özel karakterler - devam Java’da özel karakterler için örnekler. char tekTirnak = „\‟‟; System.out.println(“\r\t\n”); System.out.println(“\n\n\n”); // 4 satır alta geçilir System.out.println(“Gazi Üniversitesi\n Bilgisayar Mühendisliği ”); Çıktı: Gazi Üniversitesi Bilgisayar Mühendisliği Belgeleme ve Program Yazma Tarzı Yazılan programın anlaşılabilirliğini artırmak amacıyla açıklamalar yazmak gerekir. Aynı satır içine açıklamalar // ile yazılır. int a = 5; // Bu satırın tamamı yorumdur ve Java tarafından //algılanmaz. // Burada a = 10 yazılsa bile programın çıktısı 5’tir. // a = 10; System.out.println(a); Çıktı: 5 Belgeleme ve Program Yazma Tarzı Birden çok satırdan oluşan açıklamalar /* ile */ arasında yazılır. /** * GaziÜniversitesi * Bilgisayar Mühendisliği Bölümü */ int a = 5; System.out.println(a); Çıktı: 5 Belgeleme ve Program Yazma Tarzı Programın anlaşılabilirliğini artırmak amacıyla blokların aynı hizada yazılması gerekir. public class GuzelProgram { public static void main(String [] args) { System.out.println(); . . . System.out.println(); } }