16.07.2015 Views

Java Temel Bilgiler (Türkçe Kitap-Pdf)

Java Temel Bilgiler (Türkçe Kitap-Pdf)

Java Temel Bilgiler (Türkçe Kitap-Pdf)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Java</strong>Mustafa OFKocaeli ÜniversitesiKocaeli Meslek Yüksekokulu(Mart 2007)


Main Metod'u<strong>Java</strong>'da yapılabilecek en basit program ekrana yazı yazan bir application'dur.public class selam{public static void main(String[] args){System.out.println("Merhaba Dunya!");}}Sonuç:Basit bir işlem gerçekleştirmesine rağmen bu class, bir <strong>Java</strong> class'ı ve application'u hakkındabir çok bilgi içermektedir. <strong>Java</strong>'da her birim bir class olmak zorundadır. Bağımsız değişkenveya function yoktur. Her değişken veya function mutlaka bir class'ın içinde yer alır. Herapplication aslında özel bazı koşullara sahip bir class'dır. Bir class'ın application olabilmesiiçin gerekli koşulpublic static void main(String[] args){}diye bir metodunun olmasıdır. <strong>Java</strong> bir class'ı uygulama olarak çalıştıracağı zaman, o class'ınmain() metodunu bulur ve oradan itibaren çalıştırır. Bu metot yukarıdaki şekliyle aynenbulunmalıdır yoksa <strong>Java</strong> bu class'ın bir program olduğunu anlayamaz.Ekrana yazı yazmak için System.out.println() şeklinde bir ifade kullanılır. Bu, System adlıclass'ın out adlı property'sinin println() adlı metodunu çağırmak demektir. System class'ıuygulamanın çalıştığı ortamla ilişkili bazı property'ler ve metotlar barındırır. Ekrana yazmakiçin out adlı bir property'si bulunmaktadır. println() metodu da ekrana bir yazı yazıp yenibire satıra geçer, yani bir satırlık yazı yazar.Görüldüğü gibi <strong>Java</strong>'da basit bir application yazmak için bile (selam örneğinde olduğu gibi)bir class yapmak gerekir. Ekrana yazı yazmak için bile bir classın (System'in ) birproperty'sinin (out'un) bir metodunun (println()'in) çağırılması gerekmektedir. En basitapplication için bunları yapmak gerekiyorsa <strong>Java</strong>'nın çok zor ve öğrenilemez olduğudüşünülebilir. Ancak en karmaşık application'larda da sadece bu ve benzer işlemler yapılır.Sadece class, property ve metot isimleri ve işlevleri değişir.Değişken KullanımıSelam class'ıyla aynı işlevi yapan bir başka class yazalım.public class degiskenliselam{public static void main(String[] args){String mesaj="Merhaba Dunya!";System.out.println(mesaj);}}


Sonuç:Bu class ekrana yine aynı mesajı yazacaktır. Ancak bu kez ekrana yazılacak yazı önce birdeğişkende saklanıyor, sonra ekrana basılmak üzere println()'e veriliyor.<strong>Java</strong>'da değişken bu şekilde yapılır :DeğişkenTipi değişkenismi=değeri;DeğişkenTipi, bir değişkenin nasıl bir veri sakladığını gösterir. <strong>Java</strong>'da bir değişkeninmutlaka DeğişkenTipi'nin belli olması gerekir.String mesaj="Merhaba Dunya!";Şeklinde bir ifade de "mesaj diye bir değişken var, bunun değişken tipi String'dir ve ilkdeğeri 'Merhaba Dünya!'dır" demektir. String bir class'dır ve içerisinde karakter barındırır.Metot KullanımıYine aynı şeyi yapan bir class yapalım. Ancak ekrana bir satır basan bir metot kullanarakyapalım.public class metodlaselam{public static void yaziyazdir(String yazi){System.out.println(yazi);}public static void main(String[] args){yaziyazdir("Merhaba Dunya!");}}yaziyazdir() metodunun işlevi kendisine verilen String'i ekrana basmaktır. main()metodunda da yaziyazdir() metodu çağırılmaktadır. Bir metod bir kez yazıldıktan sonradefalarca kullanılabilir.public class metodlaselam{public static void yaziyazdir(String yazi){System.out.println(yazi);}public static void main(String[] args){yaziyazdir("Merhaba Dünya!");yaziyazdir("Merhaba Güneş!");yaziyazdir("Merhaba Ay!");}}Metod tanımlamak şu şekilde olur :


DönüşTipi metodismi(ParamtereTipi1 parametre1, ParamtereTipi1 parametre1)Burada her metodun alacağı parameter'lar ve return edilecek değerin tipi belirtilir. Eğerdönülecek hiç bir değer yoksa dönüş tipi olarak void yazılır.Birden Fazla Metot KullanımıAynı class içince birden fazla metod yazılabilir. Bunlar gerektiğinde birbirlerini çağırabilir.// ciftmetodluselam.javapublic class ciftmetodluselam{public static void yaziyazdir(String yazi){System.out.println(yazi);}public static void selamyazdir(String isim){yaziyazdir("Merhaba "+ isim);}public static void selamyazdir2(String selamturu, String isim){yaziyazdir(selamturu + " " + isim);}public static void main(String[] args){selamyazdir2("Merhaba","Dünya!");}}Sonuç:Not: Türkçe karakterin (‘ü’) doğru yazılmadığına dikkat ediniz. Bunu gidermek için Unicodekarakterler kullanılabilir. (www.unicode.org)İki string tipini birleştirmek için '+' operatorü kullanılır. Tamsayılar için toplama anlamınagelen '+', Stringler için birleştirme anlamına gelir. 1+2 işleminin sonucu 3 ederken "1"+"2"işleminin sonucu "12" eder.Class KullanımıBir class yapalım ama bu class bir application olmasın. Bu sadece başka bir uygulamayahizmet verecek bir class olsun. Yukarıda yaptığımız örneği kullanabiliriz.//metodlaselam.javapublic class metodlaselam{public static void yaziyazdir(String yazi){System.out.println(yazi);}public static void selamyazdir(String isim){


yaziyazdir("Merhaba "+ isim);}}Şimdi de metodlaselam adlı class'ı kullanan bir application yapalım.//classileselam.javapublic class classileselam{public static void main(String[] args){metodlaselam.selamyazdir("Hayat");}}Sonuç:Burada iki class'ın işbirliği sözkonusu. metodlaselam ekrana bir selamlama basabiliyor.classileselam ise bu class'ı kullanarak "Merhaba Hayat" diyebiliyor. Aynı şekilde bir başkaapplication da bu class'ı kullanabilir.//classileselam1.javapublic class classileselam1{public static void main(String[] args){metodlaselam.yaziyazdir("<strong>Java</strong> Programlama Dili");}}Bir class yapmanın avantajı, bir işlemi bir kere yapmak, bir daha da oradan kullanmaktır.metodlaselam'da bir değişiklik yapma ihtiyacı duyarsak öbür class'lar otomatik olarakduruma adapte olacaktır. Örneğin, metodlaselam.selamyazdir()'ıpublic static void selamyazdir(String isim){yaziyazdir("Merhaba "+ isim + " !");}şeklinde değiştirelim. İki uygulama da çalışınca selamlamayı sonunda ünlem işareti ileyapacaktır.Sonuç:Parametre KullanımıProgramda görüldüğü gibi sadece "Merhaba” diyebilmektedir. Bunu kullanan classlardanbirinin "Ne Haber?" deme hakkı yoktur. Bunun için başka bir class yapalım :


metodlaselam1.javapublic class metodlaselam1{public static void yaziyazdir(String yazi){System.out.println(yazi);}public static void selamyazdir(String selamlanan,String selamturu ){yaziyazdir(selamturu+ " " + selamlanan + "!" );}}Yukarıdaki class’ı aşağıdaki gibi kullanabiliriz.//classileselam2.javapublic class classileselam2{public static void main(String[] args){metodlaselam1.selamyazdir("Eren","Merhaba");metodlaselam1.selamyazdir("Eren","Ne Haber");}}Sonuç :Aynı İsimli Birden Fazla Metot Yazmak : Overloadingİki kullanımda da mutlaka Merhaba veya Ne Haber diye bir selamlama verilmelidir. Oysaaksi belirtilmediği sürece "Merhaba" demesi sağlanabilir. Varsayılan değer olarak Merhabadeğeri çıkartılabilir.//metodlaselam2.javapublic class metodlaselam2{public static void yaziyazdir(String yazi){System.out.println(yazi);}public static void selamyazdir(String selamlanan,String selamturu ){yaziyazdir(selamturu+ " " + selamlanan + "!" );}public static void selamyazdir(String selamlanan){selamyazdir(selamlanan,"Merhaba");}}Bu şekilde benzer işlevi gören aynı adlı iki metod iki farklı şekilde kullanılabilir.//classileselam3.javapublic class classileselam3{public static void main(String[] args){metodlaselam2.selamyazdir("Eren","Ne Haber");metodlaselam2.selamyazdir("Eren");}}


Sonuç:İkinci durumda biz söylemesek de "Merhaba" diyecektir. Buna overloading denir. İkinci birversiyon yazarak selamyazdir()'ı overload etmiş olduk.Nesne (Object) OluşturmakDiyelim ki aynı metod, parametrelerden'lerden biri hep aynı olmak üzere çok defa çağrılıyor.metodlaselam2.selamyazdir("Eren","Ne Haber");metodlaselam2.selamyazdir("Nihan","Ne Haber");metodlaselam2.selamyazdir("Funda","Ne Haber");metodlaselam2.selamyazdir("Celal","Ne Haber");görüldüğü gibi gereksiz yere "Ne Haber" parametresi sürekli giriliyor. Çünkü bu class'a şöylediyemiyorsunuz. "Ne Haber" selamlamasını aklında tut. Sonra da aynı selamlamayı Nihan,Funda gibi isimle kullan. Oysa <strong>Java</strong>'da bunu yapmak mümkündür. Bunun için class şu şekideolmalıdır.//metodlaselam4.javapublic class metodlaselam4{String selamturu;public void selamyazdir(String selamlanan){System.out.println(selamturu+ " "+ selamlanan + "!" );}}Kullanımı da şöyle olacaktır.//classileselam4.javapublic class classileselam4{public static void main(String[] args){metodlaselam4 yazdirilan=new metodlaselam4();yazdirilan.selamturu="Ne Haber";yazdirilan.selamyazdir("Eren");yazdirilan.selamyazdir("Nihan");yazdirilan.selamyazdir("Funda");yazdirilan.selamyazdir("Celal");}}Sonuç:Dikkat ettiyseniz selamyazdir() metodunun başında static yazmıyor. static keyword'umetodlar için kullanıldığında, ilgili metod, bu class'tan bir nesne yaratılmaksızın kullanılabilir


demektir. Ancak bu durum kullanacağı veriyi dışardan her sefer alan metod'lar için geçerlidir.O yüzdenmetodlaselam4.selamyazdir("Eren","Ne Haber")ifadesinde "Ne Haber" selamlamasını sürekli girmek zorundayız. Bunun nedeni bu classındanhiç nesne yaratılmamış olması ve veri tutma yeteneğinizin olmamasıdır. metodlaselam4 iseyaratılabilir ve selamturu değerini saklayabilir. Bir nesne içerisinde değer saklayabilenyapıya property denir. Kullanımı da object.property biçimindedir. Bir nesne oluşturmak içinClassismi Nesne=new Classismi();gibi bir ifadeye gerek vardır.metodlaselam4 yazdirilan=new metodlaselam4();gibi. Bu class'da selamturu bir property'dir. Selamyazdir() metodunun her çağrılışındaselamturu property'sinin değeri kullanılır. Bu property bir kez atandı diye bir daha değişmezdurumda değildir. İstenirse tekrar değiştirilebilir. Classileselam4.java dosyasını aşağıdakigibi değiştirirsek;//classileselam4.javapublic class classileselam4{public static void main(String[] args){metodlaselam4 yazdirilan=new metodlaselam4();yazdirilan.selamturu="Ne Haber";yazdirilan.selamyazdir("Eren");yazdirilan.selamyazdir("Nihan");yazdirilan.selamyazdir("Funda");yazdirilan.selamyazdir("Celal");yazdirilan.selamturu="Merhaba";yazdirilan.selamyazdir("Eren");yazdirilan.selamyazdir("Nihan");yazdirilan.selamyazdir("Funda");yazdirilan.selamyazdir("Celal");}}biçiminde selamturu değeri değiştirilebilir. Değiştikten sonra ekranda görülen selamlama dadeğişir. Bunun için object'i tekrar yaramaya gerek de yoktur. Metodlaselam4 classındaselamturu property'si tanımlanırken default bir değer verilebilir.String selamturu="Merhaba";O zaman en başta bir değer atamadan da kullanılabilir.Komut Satırı ArgümanlarıBir <strong>Java</strong> application'unda dışarıdan argument alınması mümkündür. Bu şekildeapplication'un duruma göre değişik çalıştırılabilmesi, application'u değiştirmeden mümkünolur. Normal şartlar altında bir application'un çalışması için komut satırındanjava Classismi


girilmesi gerekir. Ancak argument verilmesi durumundajava Classismi Argument0 Argument1 ...biçiminde kullanılır. Bu argument'ler main metod'una args[] array'i olarak verilir. main()metodununpublic static void main(String[] args)biçiminde tanımlanmasının nedeni budur. Programın içinden argument'larapublic static void main(String[] args) {String arg0=args[0];String arg1=args[1];}biçiminde erişilebilir.Dışarıdan aldığı isme selam veren bir application yazalım.public class argumanlaselam{public static void main(String[] args){String selamlanan=args[0];System.out.println("Merhaba "+selamlanan);}}Bu uygulamayı çalıştırırkenjava argumanlaselam Erengirersek ekrana "Merhaba Eren" yazar.Yani bizim application'umuzu kullanan kişi istediği değeri girebilir, istediği selamı ekranaçıkarabilir. Elbette biz bunu programın içinde de yapabilirdik. Ancak bu durumda herdeğişiklikte yeniden program yazmamız veya her sefer kodu değişitirip derlememiz gerekirdi.Oysa bir uygulama bir kez yazıldıktan sonra başka bir yerde hatta başka bir ülkedeki insanlartarafından kullanılabilir olmalıdır. Her değişiklikte application'u yeniden yazmak çoğu kezmümkün olmaz.Argümanların KontrolüYukarıdaki uygulama çalıştırılırken argument vermek unutulursa hata uyarısı alınır. Çünküuygulama mutlaka neyi selamlayacağının girilmesini istemektedir. Bu hatadan kurtulmak içinkullanıcının bir değer girip girmediği kontrol edilebilir.// argumanlaselamkontrol.javapublic class argumanlaselamkontrol{public static void main(String[] args){if(args.length==1){String selamlanan=args[0];


}}System.out.println("Merhaba "+selamlanan);}Uygulamaya argument girilmemesi durumunda sadece hata vermemesi değil, kullanıcıya biruyarı mesajı vermesi daha uygun olur.// argselamuyari.javapublic class argselamuyari{public static void main(String[] args){if(args.length==1){String selamlanan=args[0];System.out.println("Merhaba "+selamlanan);}else{System.out.println("Selam verilecek ismi vermeyi unutmayın");System.exit(0);}}}Genellikle application'lar bu durumda girilecek argument'ler hakkında bilgi veren bir yazıyıekrana basarlar ve programdan çıkarlar. Programdan çıkmak, yani application'un çalışmasınıkesmek için yukarıdaki programda kullanıldığı gibi System.exit() metodu kullanılır.Exitmetoduna '0' girmenin anlamı, programın doğal olarak, programcı tarafından durdurulduğunugöstermektir. Bir hata olduğunu belirtmek için 0 dışında bir değer, örneğin '1' girilebilir.Bir application'un, belli bir argument'in girilmemesi durumunda da varsayılan (default)değerle çalışması sağlanabilir.// argselamvarsayilan.javapublic class argselamvarsayilan{public static void main(String[] args){String selamlanan;if(args.length==1){selamlanan=args[0];}else{selamlanan="Eren";}System.out.println("Merhaba "+selamlanan);}}Bu applicationjava argselamvarsayilan Erendiye de çağrılabilir,java argselamvarsayilanşeklinde de. İkinci durumda "Merhaba Eren" yazacak ve hata vermeyecektir.


Değişkenler ve TiplerTip kavramı<strong>Java</strong>'da her değişkenin belli bir type (tip)'i olması gereklidir. Tip, değişkenin nasıl bir veritaşıdığını ve onun üzerinde ne gibi operasyonlar yapabileceğimizi belirler. Değişkenin type'ıtamsayıysa çıkarma yapabilirsiniz, String ise yapamazsınız. <strong>Java</strong> yapılan işlemlerde kullanılandeğerlerin tiplerine son derece dikkat eder. Herhangi bir tip uyumsuzluğunda derleme hatasıgelir.İki sayıyı toplayıp sonucu ekrana basan bir application yapalım.//toplama1.javapublic class toplama1 {public static void main(String[] args){int a=200;int b=100;int toplam;toplam=a+b;System.out.println("a ve b'nin Toplamı : "+toplam);}}Bu application'daint a=200;ifadesi bir değişkenin declaration'unu içerir. Tanımlama şu biçimde yapılabilir.DeğişkenTipi Değişken=İlkDeğeri;Elbette bu declaration değişkenin ilk değerinin belli olması durumunda kullanılır. İlk değerindaha sonra belli olması durumunda declarationDeğişkenTipi Değişken;biçiminde yapılır. Toplamın sonucu baştan bilinmediği için önceint toplam;biçiminde declaration yapılabilmiştir. Değeri daha sonra bir işlem sonucunda belli olacaktır.toplam=a+b;Buradaki iki satırı tek satır olarak yazmak da mümkündürint toplam=a+b;Bu durumda tanımlama ve işlem aynı ifade içerisinde yer almış olmaktadır.


Class Tipler<strong>Java</strong>'da temel olarak iki çeşit type vardır : primitive type'lar ve class type'ları. Örneğin intprimitive type'tır. String'de bir class type'ıdır. İki String type'ındaki veriyi birleştirmekistersek yine + kullanılır. Ancak işlem bu kez toplama değil birleştirme olur.//stringbirlesme.javapublic class stringbirlesme{public static void main(String[] args){String a="200";String b="100";String birlesim;birlesim=a+b;System.out.println("Birleştirilmiş String :" + birlesim);}}Sonuç:Bu uygulama değeri "200" olan String type'ındaki a ile değeri "100" olan String tipindeki bdeğişkenini birleştirir. Sonu yine bir String'tir ve "200100"dür. Görüldüğü gibi değişkenlerintipi işlemlerin nasıl yapılacağını belirlemektedir. int tipindeki bir değişkenint a=200;şeklinde tanımlanırken String tipindeki aString a="200";biçiminde tanımlandı. String değerleri belirtmek için çift tırnak kullanılır.Primitive (ilkel) TiplerPrimitive type'lar tamsayı, gerçek sayı, mantıksal ve karakter tiplerdir. Tamsayı tipleri,alabilecekleri maksimum ve minimum değerlerin sırasına göre byte, short, int, long'dur.Gerçek sayılar float ve ondan daha büyük değerleri alan double'dır. Tip olarak booleansadece true ve false gibi iki değer alır. char tipi de harf,rakam ve noktalama işaretleri gibikarakterleri tutabilir.//primitivetipler.javapublic class primitivetipler{public static void main(String[] args){int i=50000;short s=500;long l=5L;byte b=3;float f=2.5f;double d=3.5;char c='K';


}}boolean x=true;System.out.println(" Integer : " + i );System.out.println(" Short: "+ s );System.out.println(" Long: "+ l );System.out.println(" Byte : "+b );System.out.println(" Float : "+ f );System.out.println(" Double : "+ d );System.out.println(" Char : "+c );System.out.println(" Boolean : "+ x );Sonuç:Primitive TiplerDeğişkenAçıklamaTip Adıint 32-bit (4-byte) integer değişken tipi- (-2147483648 -- +2147483647 )short 16-bit (2-byte) integer değişken tipi (-32768 -- +32767 )long 64-bit (8-byte) integer değişken tipi (-9 Trilyon -- +9 Trilyon)byte 8-bit (1-byte) integer değişken tipi ( -128 – +127 )float 32-bit (4-byte) floating-point değişken tipi. (10 -127 – 10 +128 ) 6 veya 7 Dijitdouble 64-bit (8-byte) floating-point değişken tipi. (10 -1023 – 10 +1024 ) 15 dijitchar 16-bit Unicode karakter şemasını kullanan karakter değişken tipiboolean true veya false değerini kullanan mantıksal değişken tipiPrimitive tiplerle ilgili consoldan bilgi alma işlemine ait örneği aşağıda bulabilirsiniz.Buörnekte primitive tip olmayan String class tipi de kullanılmıştır. Ayrıca klavyeden veri almakiçin Scanner Class’ı kullanılmıştır ve bu Class <strong>Java</strong> 1.5 versiyonu ile gelen yeni bir class’dır.//primitivetipleralma.javaimport java.util.Scanner;public class primitivetipleralma{public static void main(String[] args){Scanner alinan = new Scanner(System.in);int i;short s;long l;byte b;float f;double d;boolean mantiksal=true;String yazi; //String primitive tip değil class tiptir.


System.out.print("Bir Yazi Giriniz :");yazi=alinan.nextLine();System.out.print("Integer Sayi Giriniz:");i=alinan.nextInt();System.out.print("Short Sayi Giriniz:");s=alinan.nextShort();System.out.print("Long Sayi Giriniz:");l=alinan.nextLong();System.out.print("Byte : ");b=alinan.nextByte();System.out.print("Float : ");f=alinan.nextFloat();System.out.print("Double : ");d=alinan.nextDouble();System.out.print("Boolean : ");mantiksal=alinan.nextBoolean();System.out.print("Girilen <strong>Bilgiler</strong>\n" +"Yazi :"+ yazi +"\n"+"Integer :" + i + "\n"+"Short :" + s + "\n"+"Long :" + l + "\n"+"Byte :" + b + "\n"+"Float :" + f + "\n"+"Double :" + d + "\n"+"Boolean :" + mantiksal + "\n");}}Sonuç:Tamsayı Tipler (Integer);int tamsayi1;long uzuntamsayi;tamsayi1= 550;


uzuntamsayi = tamsayi1;Gerçek Sayı Tipleri (Floating Point);double sure=120.0;float deger1 = 220.33F;double deger2 = 165495.332D;double deger3 = 6.10e+16;double deger4 = 135e-7;Aritmetik OperatörlerOperatör Açıklama+ Toplama- Çıkarma* Çarpma/ Bölme% Kalanı Bulma++ Arttırma-- Azaltma//aritmetikop.javapublic class aritmetikop{public static void main(String[] args){int a = 21, b = 6;int c = a + b;int d = a - b;int e = a * b;int f = a / b;int g = a % b;int h;int j=5;int k=j--;h=15;h+=a; //h+=a -->h=h+a, h-=a-->h=h-a//h*=a -->h=h*a, h/=a-->h=h/a, h%=a-->h=h%a;a++;b--;System.out.println("a:" + a );System.out.println("b:" + b );System.out.println("c:" + c );System.out.println("d:" + d );System.out.println("e:" + e );System.out.println("f:" + f );System.out.println("g:" + g );System.out.println("h: h=h+a:" + h );System.out.println("j:" + j + " k:" + k );


}}Sonuç:Aritmetik Aktarma OperatörleriArttırma Op. Açıklama+= Toplama ve aktarma-= Çıkarma ve aktarma*= Çarpma ve aktarma/= Bölme ve aktarma%= Kalanı Bulma ve aktarmah+=a;h-=a;h*=a;h/=a;h%=a;int j = 5;int k = j--;int j=5;int k=--j-->h=h+a-->h=h-a-->h=h*a-->h=h/a-->h=h%a//j=4, k=5 değerini alır.//j=4, k=4 değerini alır.= aktarma operatörü;a = (b = 3) * b; //a = 9, b= 3 değerini alır.a = b = c = 3; //a=3, b=3, c=3 değerini alır.Gerçek sayılarla yapılan bazı aritmetik işlemler;double x = 5.5, y = 2.0;double m = x + y; // m, 7.5 olurdouble n = x - y; // n ,3.5 olurdouble o = x * y; // o ,11.0 olurdouble p = x / y; // p, 2.75 olurdouble q = x % y; // q, 1.5 olurx++;// x ,6.5 olduy--;// y, 1.0 olduint a = 21, b = 6;


double deger1 = a / b;int a = 21, b = 6;double deger1 = (double) a / b;// deger1 = 3.0 olur. Çünkü her iki değişken de tamsayıdır vebölüm buna göre yapılır.//deger1 = 3.5 olur. Çünkü sonucun double olmasıisteniyor.Char Tipi;char karakter = ‘A’;char karakter = “A”; Yanlış Kullanım Char tipinde çift tırnak ( “ ) tek tırnak ( ‘ )kullanılırEscape (Kaçış) KarakterleriEscape Karakteri Açıklama\b Backspace\t Yatay Tab\n Satır Atlatma\f Form Atlatma\r Enter\” Çift Tırnak\’ Tek Tırnak\\ Ters SlaşMantıksal Tip (Boolean);Mantıksal tip true veya false değerinden meydana gelir.boolean sonuc = true;boolean cevap = false;Array'ler (Diziler)Birden fazla veriyi sıralı olarak saklamak istdiğimizde ve bu verilere aynı isimle bir elemannumarası belirterek erişmek istediğimizde dizileri kullanabiliriz. Dizileri kullanmadan öncedeklare etmemiz gerekmektedir. Dizileri tek boyutlu tanıtabildiğimiz gibi birden fazlaboyutla da tanımlayabiliriz.Şu şekilde deklare edebiliriz;tipismi[ ] diziadi=new tipismi[uzunluğu];Örneğin 10 elemanlı bir int dizisiint[ ] a=new int[10];şeklinde tanımlanır.


Dizinin bir elemanına erişim işlemi için dizinin adı ve parantezler içerisinde elemannumarasını belirtmemiz gerekir.a[3]=7;int x=a[5];//a dizisinin 3 nolu elemanına 7 değeri aktarıldı.//a dizisinin 5 nolu elemanındaki değeri x değişkenine aktarıldı.String[ ] isimler; //String türünde isimler adında bir dizi tanımlandı.int[ ] dizi1; //int türünde dizi1 adında bir dizi tanımlandı.int dizi2[ ]; //int türünde dizi2 adında bir dizi tanımlandı.String[ ] isimler;isimler = new String[10]; //10 elemanlı String türünde isimler adında bir dizi tanımlandı.String[ ] isimler = new String[10]; //10 elemanlı String türünde isimler adında bir dizitanımlandı.System.out.println(“Personel Sayısı ?”);int adet = alinan.nextInt(); //alinan Scanner nesnesi ile alındıString[] personel = new String[adet];String[] gunler = new Array[7];gunler[0] = “Pazartesi”;gunler[1] = “Salı”;gunler[2] = “Çarşamba”;gunler[3] = “Perşembe”;gunler[4] = “Cuma”;gunler[5] = “Cumartesi”;gunler[6] = “Pazar”;String türünde gunler isimli 7 elemanlı bir dizi tanımlandı ve ilk değerleri atandı.Aynı aktarma işlemini şu şekilde de yapabiliriz.String[ ] gunler = { “Pazartesi”, “Salı”, “Çarşamba”,”Perşembe”,”Cuma”,“Cumartesi”,”Pazar” }int[ ] sayilar = { 3,5,6,2,7,34,88 };veyaint[ ] sayilar = new int[ ] { 3,5,6,2,7,34,88 };Dizilerle döngü kullanımı;//diziler1.javapublic class diziler1{public static void main(String[] args){int i;int[ ] sayilar = new int[200];for (i = 0; i < sayilar.length; i++){sayilar[i] = (int)(Math.random() * 100) + 1;


}}System.out.print(sayilar[i]+"-");}Sonuç:Sayilar dizisindeki 1 den 10 a kadar sayıların toplamını bulan örnek;//dizidegerleritoplami.javapublic class dizidegerleritoplami{public static void main(String[ ] args){int[ ] sayilar=new int[ ]{1,2,3,4,5,6,7,8,9,10 };int toplam=0;for(int i=0;i


}}Sonuç :Yukarıdaki örnekte personel dizisinin elemanlarını listelerken for döngüsünde başlangıç vebitiş değerlerini belirtmemiz gereklidir. Bazı durumlarda dizinin bu bilgilerine sahipolmayabiliriz. Bu durumlarda daha farklı bir for döngüsü kullanabiliriz.Diziler için geliştirilmiş for döngüsü Kullanım şekli;(For döngüsünün bu kullanım şekli için JDK 1.5 gereklidir)for ( tipismi döngüdeğişkeni : dizi ){ifadeler;}//dizigunler.javapublic class dizigunler{public static void main(String[ ] args){String[ ] gunler = { "Pazartesi", "Sali", "Carsamba","Persembe", "Cuma","Cumartesi", "Pazar" };System.out.println("Günler:\n");for (String gun : gunler){System.out.println(gun);}}}Sonuç:


Metodlarla dizi kullanımı;Aşağıdaki örnekte metod kullanarak dizi değerlerine ulaşılmaya çalışılıyor.//dizimetodla.javapublic class dizimetodla{public static String[ ] gunlerigetir(){String[ ] gunler = { "Pazartesi", "Sali", "Carsamba","Persembe", "Cuma","Cumartesi", "Pazar" };return gunler;}public static void diziyiyazdir(String[ ] elemanlar){for (String s : elemanlar)System.out.println(s);}public static void main(String[ ] args){String[ ] gunler1 = gunlerigetir();diziyiyazdir(gunler1);}}Sonuç:İki Boyutlu Dizi Kullanımı;İki boyutlu dizileri genellikle sütun ve satırlardan oluşan verileri depolamak için kullanırız.Örneğin aşağıdaki tabloyu dizi değişkenlere yerleştirmek için iki boyutlu diziler oldukçakullanışlı olacaktır.


Yıl Trabzon Ankara Van Manisa2001 23853 22838 36483 313522002 25483 22943 38274 332942003 24872 23049 39002 368882004 28492 23784 42374 395732005 31932 23732 42943 41734Satışlar Tablosuİki boyutlu bir diziyi deklare etmek için;double satislar[] [];boyutlarını ayarlamak için;satislar = new double[5] [4];satislar iki boyutlu dizisinin uzunluğunu, satır kısmında 5 elemanlı, sütun kısmında 4elemanlı olarak tanımladık. satislar iki boyutlu dizisinin toplam eleman sayısı 20 oldu (5 x 4)Yukarıdaki tanımlamayı tek satırda da yapabilirdik.double[] [] satislar = new double [5] [4];İki boyutlu dizilere değer aktarma ve alma;satislar [0] [0] = 23853.0;deger = satislar [0] [0];//deger değişkenine 23853.0 aktarıldı.Dizi tanımını yaptıktan sonra ilk değerlerini atama;double [][] satislar ={};{23853.0, 22838.0, 36483.0, 31352.0}, // 2001{25483.0, 22943.0, 38274.0, 33294.0}, // 2002{24872.0, 23049.0, 39002.0, 36888.0}, // 2003{28492.0, 23784.0, 42374.0, 39573.0}, // 2004{31932.0, 23732.0, 42943.0, 41734.0} // 2005//ikiboyutludizi1.javapublic class ikiboyutludizi1{public static void main(String[] args){double[][] satislar ={{23853.0, 22838.0, 36483.0, 31352.0}, // 2001{25483.0, 22943.0, 38274.0, 33294.0}, // 2002{24872.0, 23049.0, 39002.0, 36888.0}, // 2003{28492.0, 23784.0, 42374.0, 39573.0}, // 2004{31932.0, 23732.0, 42943.0, 41734.0} // 2005};


System.out.println("Satislar Tablosunun ilk degeri:"+satislar[0][0]);System.out.println("Satislar Tablosunun son degeri:"+satislar[4][3]);System.out.println("Tum Tablo");System.out.println("Trabzon\tAnkara\tVan\tManisa");for (int y = 0; y < 5; y++){for (int z = 0; z < 4; z++){System.out.print(satislar[y][z]);System.out.print("\t");}System.out.println();}}}Sonuç:İki boyutlu dizi kullanırken yukarıdaki gibi dikdörtgen şeklinde düzenli bir veri yapısı olmasızorunlu değildir. Aşağıdaki gibi bir tabloyu da iki boyutlu bir diziye yerleştirebiliriz.Ekipler ÜyelerACelal Of, Kemal AkBMehmet Demir, Oktay Aslan, Cemil CeyhanCErcan Arpaz, Kerim KalDSerpil Sivrikaya, Ahmet Eren, Nihan CemreEkip ve üyeleri tablosu//ikiboyutludizi2.javapublic class ikiboyutludizi2{public static void main(String[] args){String[][] ekipler = {{"Celal Of", "Kemal Ak"},{"Mehmet Demir", "Oktay Aslan", "Cemil Ceyhan"},{"Ercan Arpaz", "Kerim Kal"},{"Serpil Sivrikaya", "Ahmet Eren","Nihan Cemre"}};for (int i = 0; i < ekipler.length; i++){for (int j = 0; j < ekipler[i].length; j++)


System.out.println(ekipler[i][j]);System.out.println();}}}Sonuç:Yukarıdaki örneği geliştirilmiş for döngüsü ile şu şekilde değiştirebiliriz;//ikiboyutludizi21.javapublic class ikiboyutludizi21{public static void main(String[] args){String[][] ekipler = {{"Celal Of", "Kemal Ak"},{"Mehmet Demir", "Oktay Aslan", "Cemil Ceyhan"},{"Ercan Arpaz", "Kerim Kal"},{"Serpil Sivrikaya", "Ahmet Eren","Nihan Cemre"}};for (String[] ekipadi : ekipler){for (String uyeadi : ekipadi)System.out.println(uyeadi);System.out.println();}}}<strong>Java</strong>, dizilerin boyutunu iki boyutla sınırlama yapmaz. Bir diziyi iki boyuttan daha fazla datanımlayabilirsiniz.int [][][] ucboyut = new [3][3][3];ucboyut dizisi 3 boyutlu olarak tanımlandı.ucboyut [0] [1] [2] = 100;//ucboyut dizisinin 0,1,2. pozisyonuna 100 aktarıldı.


ucboyutludizi1.javapublic class ucboyutludizi1{public static void main(String[] args){int[][][] ucboyut ={{ {1, 2, 3}, { 4, 5, 6}, { 7, 8, 9} },{ {10, 11, 12}, {13, 14, 15}, {16, 17, 18} },{ {19, 20, 21}, {22, 23, 24}, {25, 26, 27} }};System.out.println("Ucboyutlu Dizinin ilk degeri:"+ucboyut[0][0][0]);System.out.println("Ucboyutlu Dizinin son degeri:"+ucboyut[2][2][2]);for (int i = 0; i < 3; i++)for (int j = 0; j < 3; j++)for (int k = 0; k < 3; k++)System.out.print(ucboyut[i][j][k]+"\t");}}Sonuç:System.out.println();Arrays Class’ı;Dizi ile ilgili işlemlerinizde Array tipinin yanında gelişmiş bazı metodları bulunan ArraysClass’ını da kullanabilirsiniz. Daha önce de bahsedildiği gibi <strong>Java</strong>’da primitive tiplere ilaveolarak ayrıca Class karşılıkları bulunmaktadır. Arrays Class’ını kullanmaya başlamadan öncejava.util.Arrays kitaplığını eklemeniz gerekmektedir. (import java.util.Arrays;)Arrays Class’ına ait bazı metodlarMetotAçıklamastatic int binarySearch (dizi, aranan) dizi içerisinde aranan’ı arar. Eğer bulursaindex numarasını döndürür. Bulamazsa -1değerini döndürür.boolean deepEquals(dizi1,dizi2)İki diziyi birbiriyle kıyaslar. dizi1 ve dizi2aynı elemanlara sahipse true değerinidöndürür. Bu metod iki yada daha fazlaboyutlu diziler için çalışır.boolean equals(dizi1,dizi2)İki diziyi birbiriyle kıyaslar. dizi1 ve dizi2aynı elemanlara sahipse true değerinidöndürür. Bu metod sadece tek boyutludizilerde çalışır.static void fill (dizi, değer)dizi’yi verilen değer ile doldurur.Değer, diziile aynı tipe sahip olmalıdır.


static void fill(dizi, başlangıç, bitiş, değer)static void sort(dizi)static void sort(dizi, başlangıç, bitiş)static String toString(dizi)dizi’yi başlangıç pozisyonundan bitişpozisyonuna kadar değer ile doldurur.dizi’yi küçükten büyüğe doğru sıralar.dizi’nin başlangıç ve bitiş pozisyonlarıarasındaki elemanları küçükten büyüğe doğrusıralar.dizi değerlerini String olarak biçimlendirir.Diziye Değer doldurma;int[] sayilar = new int[10];Arrays.fill(sayilar, 100);int[] rasgeledizi = new int[1000]Arrays.fill(rasgeledizi, (int)(Math.random() * 100) + 1);Diziyi sıralama;int[] sayilar = new int[6];for (int i = 0; i < 6; i++)sayilar [i] = (int) (Math.random() * 100) + 1;Arrays.sort(sayilar);Dizi içerisinde arama yapma;int aranan = 13;int bulunanyer = Arrays.binarySearch(sayilar, aranan);if (bulunanyer > -1)System.out.println(“Sayı Bulundu”);elseSystem.out.println(“Sayı Bulunamadı”);Dizileri karşılaştırma;if (Arrays.equal(dizi1, dizi2))System.out.println(“Diziler Eşit”);Dizileri String’e çevirme;int[] sayilar = new int[6];for (int i = 0; i < 6; i++)sayilar[i] = (int) (Math.random() * 100) + 1;System.out.println(Arrays.toString(sayilar));10 elemanlı bir diziye 1 ile 100 arasında rasgele değerle dolduran program;//arrayfill1.javaimport java.util.Arrays;


public class arrayfill1{public static void main(String[] args){int[] rasgeledizi = new int[10];Arrays.fill(rasgeledizi,(int)(Math.random() * 100) + 1);}}Sonuç:for (int i=0;i


ArrayList Class’ı;ArrayList (Dizi Listesi) , temel <strong>Java</strong> koleksiyon tiplerinden biridir. Dizilere erişim için farklıbir kullanım şekli sunar.<strong>Temel</strong> özellikleri;Bir ArrayList gerektiğinde otomatik olarak boyutlanabilir. Eğer 50 elemanlı birdizi oluşturursanız ve 51. Elemana bir değer aktarılması durumunda kalırsanız budiziyi kullanamayacaksınız ve yeniden 51 elemanlı yeni bir dizi tanıtmanızgerekecektir. Fakat ArrayList’te buna gerek yoktur. ArrayList kullanırsanız bu diziyeistediğiniz kadar değer aktarabilirsiniz. Eleman problemi yoktur.ArrayList, koleksiyonun ortasına bir eleman ilave etmeyi mümkün kılar. Örneğin50 elemanlı bir normal dizi kullandığınızda tam ortasına yeni bir eleman arayayerleştirmek için bir kısım işlem gereklidir. Fakat ArrayList’e bunu yapmak içinsadece 25 nolu elemana şu değeri ilave et demeniz yeterlidir.ArrayList Class’ı diziye yeni bir eleman ilave edildiğinde arka planda verileritutmak için aktif olarak bir dizi kullanır. Diziye yeni bir eleman ilave ettiğinizdedizi dolu olacaktır. Fakat ArrayList Class’ı otomatik olarak arka planda yeni bir dizioluşturur ve önceki verileri ve yeni eklenen verileri bu yeni diziye olduğu gibikopyalar.ArrayList Class’ı, <strong>Java</strong>.util.ArrayList kütüphane paketi içerisindedir. Bu yüzden ArrayListClass’ını kullanmak için programınıza <strong>Java</strong>.util.ArrayList kütüphanesini veya <strong>Java</strong>.util.*kütüphanesinin tamamını eklemeniz gerekmektedir.import java.util.ArrayList;veyaimport java.util.*;satırını programınızın başına eklemelisiniz.


ArrayList()YapıcıArrayList(int kapasite)Arrays Class YapıcılarıAçıklamaBaşlangıç kapasite olarak 10 elemanlı birArrayList oluşturur.Kapasite ile belirtilmiş olan ArrayList’ioluşturur.ArrayList Oluşturma;Bir ArrayList oluşturmak için ilgili kütüphaneyi (java.util.ArrayList) programa eklediktensonra aşağıdaki gibi oluşturabilirsinizArrayList isimler;isimler = new ArrayList();veyaArrayList isimler = new ArrayList();Yukarıdaki satırda kapasite belirtmeden ArrayList’i oluşturduk. Kapasite belirtilmekistendiğindeArrayList isimler = new ArrayList(100);100 elemanlı bir ArrayList oluşturuldu. Eğer kapasite verilmezse varsayılan olarak 10elemanlı bir ArrayList oluşturulur ve istenildiği kadar eleman eklenebilir. ArrayList boyutuotomatik olarak ayarlar.ArrayList isimler = new ArrayList ();Yukarıdaki satırda elemanlarının türü String olan bir ArrayList oluşturuldu. Bu şekildetanıtmanın derleyicinin (Compiler) yanlış tipteki değerleri ayırması bakımından bir faydasıbulunmaktadır.ArrayList’e Eleman Ekleme;ArrayList isimler = new ArrayList();isimler.add(“Celal”);isimler.add(“Ahmet”);isimler.add(“Eren”);isimler.add(“Kemal”);add metodu bir ArrayList’e eleman eklemeyi sağlar. Ayrıca add metodu yardımıyla belirli birpozisyona değer eklemeyi sağlar.ArrayList borclular = new ArrayList( );borclular.add(“Celal”);


orclular.add(“Ahmet”);borclular.add(“Eren”);borclular.add(“Kemal”);ArrayList sayilar = new ArrayList( );sayilar.add(10);sayilar.add(20);sayilar.add(30);sayilar.add(40);sayilar.add (2,50);sayilar dizisi listelendiğinde değerleri görüntüler.102050 //add(2,50) komutu kullanıldı.3040Elemanlara Erişme;ArrayList elemanlarına erişmek için get metodunu kullanabilirsiniz. Eleman numarasınıvererek değerine ulaşabilirsiniz.for(int i=0;i


{}int k= isimler.indexOf(elemanlar);System.out.println("Eleman No:" + k + ":" + elemanlar);Sonuç:Eleman No:0:CelalEleman No:1:AhmetEleman No:2:ErenEleman No:3:KemalindexOf metodu ile elemanın index numarasını öğrenebiliriz.ArrayList gunler=new ArrayList();gunler.add(“Pazartesi”);gunler.add(“Salı”);gunler.add(“Çarşamba”);gunler.add(“Perşembe”);gunler.add(“Cuma”);gunler.add(“Cumartesi”);gunler.add(“Pazar”);System.out.println(gunler);Sonuç:[Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi, Pazar]ArrayList kullanımına yönelik bir örnek//arraylist1.javaimport java.util.ArrayList;public class arraylist1 {public static void main(String[] args) {ArrayList isimler=new ArrayList();ArrayList bolumler=new ArrayList();ArrayList tamsayilar=new ArrayList();isimler.add("Ahmet");isimler.add("Eren");isimler.add("Nihan");isimler.add("Cemre");isimler.add("Celal");bolumler.add("Bilgisayar");bolumler.add("Elektrik");bolumler.add("Muhasebe");bolumler.add("Haberleşme");tamsayilar.add(10);tamsayilar.add(20);tamsayilar.add(30);


tamsayilar.add(40);System.out.println("isimler listesinin ilk elemanı :" +isimler.get(0));System.out.println("isimler listesinin son elemanı :" +isimler.get(isimler.size()-1));isimler.set(0,"Ali"); //0 nolu eleman değiştirildi.System.out.println("isimler dizi listesi :\n" + isimler);System.out.println("İsimler\n----------");for(int i=0;i


ArrayList Class’ına ait bazı metodlarMetotAçıklamaboolean add(Object listeelemanı)listeelemanı değerini dizi listesine ilave eder.void add(int indexno, Object listeelamanı) listeelemanı değerini, indexno ile belirtilenyere yerleştirerek ilave eder.boolean addAll(Collection koleksiyon) koleksiyon ile belirtilen bir diziyi dizilistesinin sonuna ekler.boolean addAll(int indexno, Collection koleksiyon ile belirtilen bir diziyi dizikoleksiyon)listesinin indexno pozisyonundan sonra ekler.void clear()Dizi listesinin tüm elemanlarını siler.boolean contains(Object deger)deger ile verilen bilgiyi dizi listesinde arareğer bulursa true değerini, aksi durumda falsedeğerini döndürür.boolean containsAll(Collectionkoleksiyon ile verilen dizinin tamamını dizikoleksiyon)listesinde arar eğer bulursa true değerini, aksidurumda false değerini döndürür.void ensureCapacity(int kapasite) kapasite ile verilen değer ile dizi listesininkapasitesini arttırır.Object get(int indexno)indexno ile verilen eleman numarasına denkgelen değeri döndürür.int indexOf(Object listeelemanı)listeelemanı ile belirtilen liste elemanınınindex numarasını sayısal olarak döndürür. Eğer-1 değerini döndürürse listeelemanı dizilistesinde bulunmamaktadır.boolean isEmpty()Eğer true değeri dönerse dizi listesi herhangibir eleman içermemektedir.boolean remove(int indexno)boolean remove(Object listeelemanı)boolean removeAll(Collection koleksiyon)boolean retainAll(Collection koleksiyon)Object set(int indexno, Object listeelemanı)int size()Object[] toArray()Object[] toArray(Tip[] dizi)void trimToSize()indexno ile verilen pozisyondaki elemanı dizilistesinden kaldırır.listeelemanı ile verilen elemanı dizi listesindenkaldırır.Koleksiyon ile verilen diziyi tüm elemanları ilebirlikte dizi listesinden kaldırır.Koleksiyon ile verilen dizinin haricindeki tümelemanları dizi listesinden kaldırır.indexno ile verilen pozisyondaki değerinyerine listelemanı değerini aktarır.Dizi listesinin eleman sayısını döndürür.Dizi listesinin elemanlarını bir dizi nesnesiolarak döndürür.Dizi listesinin elemanlarını Tip ile verilen birdizi nesnesi olarak döndürür.Dizi listesinin boyutunu eleman sayısına görekırpma işlemini yapar.


ArrayList metotlarının kullanımına yönelik bir örnek uygulama//arraylistmetot.javaimport java.util.*;//Tüm java.util kütüphanesi programa dahil edildipublic class arraylistmetot {public static void main(String[] args) {ArrayList isimler=new ArrayList();ArrayList sayilar=new ArrayList();isimler.add("Ali");isimler.add("Celal");isimler.add("Nihan");isimler.add(1,"İrfan");System.out.println(isimler);sayilar.add(10);sayilar.add(20);sayilar.add(30);isimler.addAll(sayilar);//sayilar dizi listesi isimler dizi listesine eklendiSystem.out.println(isimler);sayilar.clear();//sayilar dizi listesinin içeriği silindiSystem.out.println(sayilar);sayilar.add(10);sayilar.add(20);sayilar.add(30);if (isimler.contains("Ali")==true){System.out.println("Ali, isimler dizi listesinde");}else{System.out.println("Ali, isimler dizi listesinde değil");}if (isimler.containsAll(sayilar)==true){System.out.println("sayilar dizi listesi, isimler dizi listesinde");}else{System.out.println("sayilar dizi listesi, isimler dizi listesinde değil");}isimler.ensureCapacity(20);//isimler dizi listesinin eleman sayısı 20 ye çıkarıldıSystem.out.println("isimler in ilk elemanı :" + isimler.get(0));System.out.println("Celal'ın eleman numarası :"+isimler.indexOf("Celal"));if (isimler.isEmpty()==false){System.out.println("isimler dizi listesi boş değil");}isimler.remove(0);//Ali, dizi listesinden çıkarıldıSystem.out.println(isimler);isimler.add(0,"Ali");


0 nolu yere eklendiisimler.remove("Celal");//Celal, dizi listesinden çıkarıldıSystem.out.println(isimler);isimler.removeAll(sayilar);//isimler, dizi listesinden sayilar dizi listesi çıkarıldıSystem.out.println(isimler);isimler.addAll(sayilar);isimler.retainAll(sayilar);//sayilar dizi listesinin dışındakiler çıkarıldıSystem.out.println(isimler);isimler.add("Ali");isimler.add("Celal");isimler.add("Nihan");isimler.add(1,"İrfan");isimler.set(1,"Ömer");//1 nolu eleman Ömer olarak değiştirildiisimler.trimToSize();//isimler dizi listesi boş elemanlardan temizlendiSystem.out.println("isimler\n-----\n"+isimler+" Toplam eleman sayısı :"+isimler.size());}}//Class sonuSonuç:[Ali, İrfan, Celal, Nihan][Ali, İrfan, Celal, Nihan, 10, 20, 30][]Ali, isimler dizi listesindesayilar dizi listesi, isimler dizi listesindeisimler in ilk elemanı :AliCelal'ın eleman numarası :2isimler dizi listesi boş değil[İrfan, Celal, Nihan, 10, 20, 30][Ali, İrfan, Nihan, 10, 20, 30][Ali, İrfan, Nihan][10, 20, 30]isimler------[10, Ömer, 20, 30, Ali, Celal, Nihan] Toplam eleman sayısı :7Wrapper Class’ları<strong>Java</strong>'da herşey class olarak kullanılmaktadır. <strong>Java</strong> Class kütüphanesinde bütün primitivetiplerin Class karşılıkları bulunmaktadır. Bu Class’lar Wrapper Class olarak adlandırılırlar.Primitive değişken tiplerini daha ileriye götürerek Class olarak kullanılma ayrıcalığını <strong>Java</strong>’dabulabilirsiniz. Bu Class’ın içerisinde Primitive tipiyle ilgili çeşitli özellik ve metodlar bulunur.Bu metodlardan bazıları, değişken tip çevrimi gibi metodlardır.


Primitive TipintshortlongbytefloatdoublecharbooleanPrimitive tiplerin Wrapper Class’larıWrapper Class’ıIntegerShortLongByteFloatDoubleCharacterBooleanInteger Class’ıDönüş Tipistatic intstatic intstatic intstatic ClassInteger Class’ına ait ÖzelliklerÖzellik AdıMAX_VALUEDeğişken tipinin maksimum değerini döndürür.MIN_VALUEDeğişken tipinin minimum değerini döndürür.SIZEDeğişken tipinin kapladığı büyüklük değerini döndürür.TYPEDeğişken tipinin tip adını döndürür.a ve b değişkenlerini primitive tip olarak tanıttık.int a=254;int b=1254;a ve b değişkenlerini Integer Class’ı olarak olarak tanıttık. Artık bu Class’a ait özellik vemetodları kullanabiliriz.Integer a=new Integer(254);Integer b=new Integer(1254);Integer Class’ına ait özellikleri listeleyen uygulama;//intozellik.javapublic class intozellik{public static void main(String[] args){Integer a=new Integer(254);Integer b=new Integer(1254);System.out.println("a degiskeni="+a+ " b degiskeni ="+b);System.out.println("Integer Class ozellikleri");System.out.println("Maksimum Degeri :"+a.MAX_VALUE);System.out.println("Minimum Degeri :"+a.MIN_VALUE);System.out.println("Buyuklugu :"+a.SIZE);System.out.println("Tip Adi :"+a.TYPE);


}}Sonuç:Integer Class’ına ait MetodlarDönüş Tipi Metod AdıbytebyteValue()Integer nesnesinin değerini byte olarak döndürür.intcompareTo(Integer diğer_Integer)İki Integer objeyi numerik olarak karşılaştırır. Eğer eşitse “0” değilse “-1”değerini döndürür.double doubleValue()Integer nesnesinin değerini bir double olarak döndürür.boolean equals(Object nesne)Bu nesneyi bir başka nesne ile karşılaştırır. Eğer eşitse “true”, değilse“false” değerini döndürür.floatfloatValue()Integer nesnesinin değerini bir float olarak döndürür.inthashCode()Integer nesnesi için Hash Kodunu (HashCode) döndürür.*intintValue()Integer nesnesinin değerini bir int olarak döndürür.longlongValue()Integer nesnesinin değerini bir long olarak döndürür.static int parseInt(String s)Bir String değeri, integer değere dönüştürür.static int parseInt(String s, int taban)Bir String değeri, taban ile belirtilen sayı tabanını temel alarak integerdeğer dönüştürür.shortshortValue()Integer nesnesinin değerini short olarak döndürür.static int signum(int i)i parametresinin signum fonksiyon değeri olan işaret bilgisini döndürür.Eğer pozitifse “1”, negatifse “-1” döndürür.static String toBinaryString(int i)i parametresini String olarak ikili (binary) sayı tabanına dönüştürür.static String toHexString(int i)i parametresini String olarak Onaltılı (Hexadecimal) sayı tabanınadönüştürür.static String toOctalString(int i)i parametresini String olarak Sekizli (Octal) sayı tabanına dönüştürür.


StringtoString()Integer nesnesinin değerini, bir String nesnesine dönüştürür.static String toString(int i)i parametresini, bir String nesnesine dönüştürür.static String toString(int i, int taban)i parametresini, taban ile belirtilen sayı tabanını temel alarak bir Stringnesnesine dönüştürür.static Integer valueOf(int i)i parametresini, Integer olarak döndürür.static Integer valueOf(String s)s parametresini, Integer nesnesi olarak döndürür.static Integer valueOf(String s, int taban)s parametresini, taban ile belirtilen sayı tabanını temel alarak bir Integernesnesine dönüştürür.Integer Class’ına ait metodları gösteren uygulama;//intmethod.javapublic class intmethod{public static void main(String[] args){Integer a=new Integer(128);Integer b=new Integer(1254);String s1="1500";System.out.println("a degiskeni="+a+ " b degiskeni ="+b);System.out.println("Integer Class Metodlari");System.out.println("byteValue Metodu:"+a.byteValue());System.out.println("compareTo Metodu:"+a.compareTo(b));System.out.println("doubleValue Metodu:"+a.doubleValue());System.out.println("equals Metodu:"+a.equals(b));System.out.println("floatValue Metodu:"+a.floatValue());System.out.println("hashCode Metodu:"+a.hashCode());System.out.println("intValue Metodu:"+a.intValue());System.out.println("longValue Metodu:"+a.longValue());int c=a.parseInt(s1)+10;System.out.println("parseInt Metodu:"+c);int d=a.parseInt("FF",16);//FF hexadecimal--> 255 decimalint e=a.parseInt("11111111",2);//11111111 binary-->255 decimalint f=a.parseInt("120",8);//120 octal sayısı-->80 decimalSystem.out.println("FF(16):"+d+ ",11111111(2):"+e+ ",120(8):"+f);System.out.println("shortValue Metodu:"+a.shortValue());if (Integer.signum(a)==1)System.out.println("Sayi Pozitif");else if (Integer.signum(a)==-1)System.out.println("Sayi Negatif");System.out.println("toBinaryString Metodu:"+Integer.toBinaryString(255));System.out.println("toHexString Metodu:"+Integer.toHexString(255));System.out.println("toOctalString Metodu:"+Integer.toOctalString(255));System.out.println("toString Metodu:"+a.toString()+" String oldu");System.out.println("toString Metodu:"+Integer.toString(255)+" String oldu");System.out.println("toString Metodu:"+Integer.toString(255,16)+" HexaDecimal");


System.out.println("valueOf Metodu:"+Integer.valueOf(a));System.out.println("valueOf Metodu:"+Integer.valueOf("1250"));System.out.println("valueOf Metodu:"+Integer.valueOf("FF",16));}}Sonuç:*Hashtable, dizilerde kullandığımız indis numaraları yerine bir string eşleştirmesi yapılan birtablo kullanımıdır. Hashtable class’ını kullanmaya başlamadan önce java.util.Hashtablekitaplığını eklemeniz gerekmektedir. (import java.util.Hashtable;)Örnek bir Hashtable uygulaması;//hashtable1.javaimport java.util.Hashtable;public class hashtable1{public static void main(String[] args){Hashtable sayilar = new Hashtable();sayilar.put("bir", new Integer(121));sayilar.put("iki", new Integer(122));sayilar.put("uc", new Integer(123));Integer n = (Integer) sayilar.get("iki");if (n != null) {System.out.println("iki = " + n);}}}Sonuç:


Short Class’ıÖzelliklerShort Class’ı özellikleri, yukarıda belirtilen “Integer Class’ına ait Özellikler” başlıklıtablosundaki özelliklerdir.MetodlarShort Class’ın metodları, “Integer Class’ına ait Metodlar” başlıklı tablosundakimetodlardır. Ayrıca bu metodlara ilave olarak aşağıdaki metodlar kullanılabilir.Dönüş TipiMetod Adıstatic short parseShort(String s)Bir String değeri, short değere dönüştürür.static short parseShort(String s, int taban)Bir String değeri, taban ile belirtilen sayı tabanını temel alarak short değerdönüştürür.Long Class’ıÖzelliklerLong Class’ı özellikleri, yukarıda belirtilen “Integer Class’ına ait Özellikler” başlıklıtablosundaki özelliklerdir.MetodlarLong Class’ın metodları, “Integer Class’ına ait Metodlar” başlıklı tablosundaki metodlardır.Ayrıca bu metodlara ilave olarak aşağıdaki metodlar kullanılabilir.Dönüş TipiMetod Adıstatic long parseLong(String s)Bir String değeri, long değere dönüştürür.static long parseLong(String s, int taban)Bir String değeri, taban ile belirtilen sayı tabanını temel alarak long değerdönüştürür.Byte Class’ıÖzelliklerByte Class’ı özellikleri, yukarıda belirtilen “Integer Class’ına ait Özellikler” başlıklıtablosundaki özelliklerdir.MetodlarByte Class’ın metodları, “Integer Class’ına ait Metodlar” başlıklı tablosundaki metodlardır.Ayrıca bu metodlara ilave olarak aşağıdaki metodlar kullanılabilir.


Dönüş TipiMetod Adıstatic byte parseByte(String s)Bir String değeri, byte değere dönüştürür.static byte parseByte(String s, int taban)Bir String değeri, taban ile belirtilen sayı tabanını temel alarak byte değerdönüştürür.Float Class’ıÖzelliklerDönüş Tipistatic floatstatic floatstatic floatstatic floatstatic floatstatic intstatic Class< float >Float Class’ına ait ÖzelliklerÖzellik AdıMAX_VALUEDeğişken tipinin maksimum değerini döndürür.MIN_VALUEDeğişken tipinin minimum değerini döndürür.NaNfloat tipinin, sayı olmayan (Not-a-Number) değerini tutan sabittir.NEGATIVE_INFINITYfloat tipinin, negatif infinity (Sonsuzluk) değerini tutan sabittir.POSITIVE_INFINITYfloat tipinin, pozitif infinity (Sonsuzluk) değerini tutan sabittir.SIZEDeğişken tipinin kapladığı büyüklük değerini döndürür.TYPEDeğişken tipinin tip adını döndürür.-<strong>Java</strong> Programlama dilinde bir gerçek sayıyı sıfıra (0) böldüğümüzde bir istisna oluşmazbunun yerine sayının negatif yada pozitif işaretine göre negatif yada pozitif infinity(Sonsuzluk) adı verilen bir değer oluşur. Örneğin 55.0 sayısını 0.0’a bölersek infinity, -55.0sayısını 0.0’a bölersek –infinity değeri oluşur.double r = 48.0;double t = 0.0;double v= r / t;System.out.println(“v :”+v);Konsol ekranındav: infinitygözükecektir.Eğer r değişkeni -48.0 değerine sahip olursa bu durumda v değişkenine -infinity değeriaktarılacaktır.-Matematikte, sayı olarak ele alınmayan bazı sayılar vardır bunlardan biri komplekssayılardır. Kompleks sayılar i 2 = -1 olarak ifade edilir. Negatif bir sayının kareköküalındığında bir kompleks sayı ortaya çıkar. <strong>Java</strong>’da bu sayılar, NaN (Not a Number) olarakele alınırlar.double e = Math.sqrt (-35.0);double f = e;//e sayı değildir. NaN//f sayı değildir. NaN


System.out.println(“e:” + “ f:” + f);Bir NaN değer bir başka NaN değere eşit değildir. Dolayısıylaif (e == f)System.out.println(“e değişkeni f değişkenine eşit”);Burada if satırı çalışmayacaktır. Çünkü e ve f değişkeni bir NaN değerdir.Float Class’ına ait özellikleri listeleyen uygulama;//floatozellik.javapublic class floatozellik{public static void main(String[] args){Float a=new Float(128.5);Float b=new Float(1260.0);double r = 48.0;double t = 0.0;double v= r / t;double e = Math.sqrt (-35.0);//e sayı değildir.(NaN)double f = e;//f sayı değildir.(NaN)System.out.println("v :"+v);System.out.println("e:" + e + " f:" + f);System.out.println("a degiskeni="+a+ " b degiskeni ="+b);System.out.println("Float Class ozellikleri");System.out.println("Maksimum Degeri :"+a.MAX_VALUE);System.out.println("Minimum Degeri :"+a.MIN_VALUE);System.out.println("NaN Degeri :"+a.NaN);System.out.println("NEGATIVE_INFINITY Degeri :"+a.NEGATIVE_INFINITY);System.out.println("POSITIVE_INFINITY Degeri :"+a.POSITIVE_INFINITY);System.out.println("Buyuklugu :"+a.SIZE);System.out.println("Tip Adi :"+a.TYPE);}}Sonuç:MetodlarDönüş TipibyteMetod AdıbyteValue()Float Class’ına ait Metodlar


Float nesnesinin değerini byte olarak döndürür.static int compare(float f1, float f2)İki float değeri numerik olarak karşılaştırır. Eğer eşitse “0” değilse “-1”değerini döndürür.intcompareTo(Float diğer_Float)İki Float objeyi numerik olarak karşılaştırır. Eğer eşitse “0” değilse “-1”değerini döndürür.double doubleValue()Float nesnesinin değerini bir double olarak döndürür.boolean equals(Object nesne)Bu nesneyi bir başka nesne ile karşılaştırır. Eğer eşitse “true”, değilse“false” değerini döndürür.floatfloatValue()Float nesnesinin değerini bir float olarak döndürür.İnthashCode()Float nesnesi için Hash Kodunu (HashCode) döndürür.intintValue()Float nesnesinin değerini bir int olarak döndürür.boolean isInfinite()Float nesnesinin değeri infinite ise (Limitsiz) true, aksi durumda falsedeğerini döndürür.static boolean isInfinite(float v)v paremetresinin değeri infinite ise (Limitsiz) true, aksi durumda falsedeğerini döndürür.boolean isNaN()Float nesnesinin değeri NaN ise true, aksi durumda false değerinidöndürür.static boolean isNaN(float v)v parametresinin değeri NaN ise true, aksi durumda false değerinidöndürür.longlongValue()Float nesnesinin değerini bir long olarak döndürür.static float parseFloat(String s)Bir String değeri, float değere dönüştürür.shortshortValue()Float nesnesinin değerini short olarak döndürür.static String toHexString(float f)f parametresini String olarak Onaltılı (Hexadecimal) sayı tabanınadönüştürür.StringtoString()Float nesnesinin değerini, bir String nesnesine dönüştürür.static String toString(float f)f parametresini, bir String nesnesine dönüştürür.static Float valueOf(float f)f parametresini, float olarak döndürür.static Float valueOf(String s)s parametresini, Float nesnesi olarak döndürür.Float Class’ına ait metodları gösteren uygulama;


floatmethod.javapublic class floatmethod{public static void main(String[] args){Float a=new Float(128.5);Float b=new Float(1260.0);String s1="1500";System.out.println("a degiskeni="+a+ " b degiskeni ="+b);System.out.println("Float Class Metodlari");System.out.println("byteValue Metodu:"+a.byteValue());System.out.println("compare Metodu:"+Float.compare(a,b));System.out.println("compareTo Metodu:"+a.compareTo(b));System.out.println("doubleValue Metodu:"+a.doubleValue());System.out.println("equals Metodu:"+a.equals(b));System.out.println("floatValue Metodu:"+a.floatValue());System.out.println("hashCode Metodu:"+a.hashCode());System.out.println("intValue Metodu:"+a.intValue());System.out.println("longValue Metodu:"+a.longValue());float c=a.parseFloat(s1)+10;System.out.println("parseFloat Metodu:"+c);System.out.println("shortValue Metodu:"+a.shortValue());System.out.println("toHexString Metodu:"+Float.toHexString(255));System.out.println("toString Metodu:"+a.toString()+" String oldu");System.out.println("toString Metodu:"+Float.toString(675275)+" String oldu");System.out.println("valueOf Metodu:"+Float.valueOf(a));System.out.println("valueOf Metodu:"+Float.valueOf("1250.456"));System.out.println("isNaN Metodu:"+a.isNaN());System.out.println("isNaN Metodu:"+Float.isNaN(123));System.out.println("isInfinite Metodu:"+a.isInfinite());System.out.println("isInfinite Metodu:"+Float.isInfinite(123));}}Sonuç:Double Class’ı


ÖzelliklerDouble Class’ı özellikleri, yukarıda belirtilen “Float Class’ına ait Özellikler” başlıklıtablosundaki özelliklerdir.MetodlarDouble Class’ın metodları, “Float Class’ına ait Metodlar” başlıklı tablosundaki metodlardır.Ayrıca bu metodlara ilave olarak aşağıdaki metodlar kullanılabilir.Dönüş TipiMetod Adıstatic double parseDouble(String s)Bir String değeri, double değere dönüştürür.Boolean Class’ıÖzelliklerDönüş Tipistatic Booleanstatic Booleanstatic ClassBoolean Class’ına ait ÖzelliklerÖzellik AdıFALSEBoolean nesnesinin false değerini barındırır.TRUEBoolean nesnesinin true değerini barındırır.TYPEBoolean nesnesinin tip ismini barındırır.Boolean Class’ına ait özellikleri listeleyen uygulama;//booleanozellik.javapublic class booleanozellik{public static void main(String[] args){Boolean a=new Boolean(true);Boolean b=new Boolean(false);System.out.println("a degiskeni="+a+ " b degiskeni ="+b);System.out.println("Boolean Class ozellikleri");System.out.println("FALSE Degeri :"+a.FALSE);System.out.println("TRUE Degeri :"+a.TRUE);System.out.println("Tip Adi :"+a.TYPE);}}Sonuç:


MetodlarDönüş TipibooleanMetod AdıBoolean Class’ına ait MetodlarbooleanValue()Boolean nesnesinin değerini boolean olarak döndürür.int compareTo(Boolean b)b parametresini boolean nesnesi ile numerik olarak karşılaştırır. Eğereşitse “0”, eşit değilse “1” değerini döndürür.booleanintequals(Object nesne)Bu nesneyi bir başka nesne ile karşılaştırır. Eğer eşitse “true”, değilse“false” değerini döndürür.hashCode()Boolean nesnesi için Hash Kodunu (HashCode) döndürür.static boolean parseBoolean(String s)Bir String değeri, boolean değere dönüştürür.StringtoString()Boolean nesnesinin değerini, bir String nesnesine dönüştürür.static String toString(boolean b)b parametresini, bir String nesnesine dönüştürür.static Boolean valueOf(boolean b)b parametresini, Boolean olarak döndürür.static Boolean valueOf(String s)s parametresini, Boolean nesnesi olarak döndürür.Boolean Class’ına ait metodları gösteren uygulama;//booleanmethod.javapublic class booleanmethod{public static void main(String[] args){Boolean a=new Boolean(true);Boolean b=new Boolean(false);String s1="1500";System.out.println("a degiskeni="+a+ " b degiskeni ="+b);System.out.println("Booelan Class Metodlari");System.out.println("booleanValue Metodu:"+a.booleanValue());System.out.println("compareTo Metodu:"+a.compareTo(b));System.out.println("equals Metodu:"+a.equals(b));System.out.println("hashCode Metodu:"+a.hashCode());boolean c=a.parseBoolean("true");System.out.println("parseBoolean Metodu:"+c);System.out.println("toString Metodu:"+a.toString()+" String oldu");System.out.println("toString Metodu:"+a.toString(false)+" String oldu");System.out.println("valueOf Metodu:"+Boolean.valueOf(a));System.out.println("valueOf Metodu:"+Boolean.valueOf("false"));}}Sonuç:


String Class’ıMetinleri saklamak için primitive tip olan char tipini yada String Class’ını kullanırız. Stringveri türü aslında karakter dizilerinden meydana gelmiştir.String s1= “abcdef”;Yukarıdaki tanımlamanın benzeri;char metin1[] = {‘a’,’b’,’c’,’d’,’e’,’f’};String s1 = new String (metin1);System.out.println("abc");String cde = "cde";System.out.println("abc" + cde);String c = "abc".substring(2,3);String d = cde.substring(1, 2);String satir1=”Bugün hava”;String satir2= satir1 + “\nçok güzel”;int iscisayisi=50;String mesaj=”İşçi Sayısı :” + iscisayisi;if (cevap.equals (“celal”))System.out.println(“Seçilen kişi celal”);if (cevap.equalsIgnoreCase(“e”))System.out.println(“E harfi seçildi”);ÖzelliklerDönüş Tipistatic ComparatorString Class’ına ait özelliklerÖzellik AdıCASE_INSENSITIVE_ORDERcompareToIgnoreCase (İki Stringi büyük küçük harf


ayrımını dikkate almadan karşılaştırma yapar.)ileString nesnesini belirleyen bir Comparator’dur.* Comparator Class’ı, karşılaştırma işlemleri için kullanılan bir Class’dır. compare, veequals adında iki adet metodu bulunmaktadır.String Class’ına ait özellikleri listeleyen uygulama;//stringozellik.javapublic class stringozellik{public static void main(String[] args){String s1="<strong>Java</strong>";String s2="Programlama Dili";System.out.println("s1 degiskeni="+s1+ " s2 degiskeni ="+s2);System.out.println("String Class ozellikleri");System.out.println("CASE_INSENSITIVE_ORDER Degeri:"+s1.CASE_INSENSITIVE_ORDER);}}Sonuç:MetodlarDönüş TipicharintString Class’ına ait MetodlarMetod AdıcharAt(int indeks)indeks parametresi ile belirtilen pozisyondaki karakteri döndürür.intcodePointAt(int indeks)indeks parametresi ile belirtilen pozisyondaki karakterin Unicode kodkarşılığını döndürür. Örnek : ‘a’ - Unicode Kodu : 97intcodePointBefore(int indeks)indeks parametresi ile belirtilen pozisyondan bir önceki karakterin Unicodekod karşılığını döndürür. Örnek : ‘a’ - Unicode Kodu : 97intcodePointCount(int başlangıç_indeks, int bitiş_indeks)String nesnesinin değerinin başlangıç_indeks ile bitiş_indeks arasındakalan Unicode karakterlerin sayısını döndürür.compareTo(String diger_string)İki String’i alfabetik (lexicographically) olarak karşılaştırır. Eğer eşitse “0”değerini döndürür, eşit değilse karakterlerin alfabetik farkını negatif değerolarak döndürür.int compareToIgnoreCase(String s1)İki String’i alfabetik (lexicographically) olarak karşılaştırır. Büyük küçük


harf duyarlılığını dikkate almadan karşılaştırma yapar. Eğer eşitse “0”değerini döndürür, eşit değilse eşit değilse karakterlerin alfabetik farkınınegatif değer olarak döndürür.String concat(String s1)s1 parametresini, String nesnesinin değerinin sonuna ekler.boolean contentEquals(StringBuffer sb)StringBuffer sb parametresi ile String nesnesinin değeri aynı ardışıklıkdurumuna sahipse true değerini, aksi durumda false değerini döndürür.*static String copyValueOf(char[] c1)c1 karakter dizisi olarak belirtilen char array’ı, String olarak döndürür.static String copyValueOf(char[] c1, int konum, int adet)c1 karakter dizisinin konum pozisyonundan adet kadarını String olarakdöndürür.boolean endsWith(String sonek)sonek parametresinin, String nesnesinin son eki olup olmadığını kontroleder. true döndürürse son eki, aksi durumda son eki değildir.boolean equals(Object diğer_nesne)String nesnesini, diğer_nesne ile karşılaştırır. Eşitse true, değilse falsedöndürür.boolean equalsIgnoreCase(String diğer_nesne)String nesnesini, diğer_nesne ile büyük küçük harf duyarlılığını gözardıederek karşılaştırır. Eşitse true, değilse false döndürür.void getChars(int başlangıç, int bitiş, char[] hedef,int hedefbaşlangıç)String’in başlangıç ve bitiş pozisyonları arasındaki karakterleri hedefisimli char dizisinin hedefbaşlangıç pozisyonuna kopyalar.inthashCode()String nesnesi için Hash Kodunu (HashCode) döndürür.intindexOf(int karakter)karakter parametresini bu String içerisinde arar. İlk bulduğu karakterinkonumunu sayısal olarak döndürür. Bulamazsa -1 değerini döndürür.intindexOf(int karakter, int aramakonumu)Yukarıdaki indexOf metodu gibidir. Farklı olarak arama, aramakonumupozisyonundan itibaren yapılır.intindexOf(String aranan)aranan String parametresini bu String içerisinde arar. Bulduğu ilk konumusayısal olarak döndürür. Bulamazsa -1 değerini döndürür.intindexOf(String aranan, int aramakonumu)Yukarıdaki indexOf metodu gibidir. Farklı olarak arama, aramakonumuparametresi pozisyonundan itibaren yapılır.intlastIndexOf(int karakter)karakter parametresini bu String içerisinde arar. Son bulduğu karakterinkonumunu sayısal olarak döndürür. Bulamazsa -1 değerini döndürür.intlastIndexOf(int karakter, int aramakonumu)Yukarıdaki lastindexOf metodu gibidir. Farklı olarak arama,aramakonumu parametresi pozisyonundan itibaren yapılır.intlastIndexOf(String aranan)aranan String parametresini bu String içerisinde arar. Bulduğu sonkonumu sayısal olarak döndürür. Bulamazsa -1 değerini döndürür.


intintStringStringStringString[]String[]booleanbooleanStringStringchar[]StringStringStringStringlastIndexOf(String aranan, int aramakonumu)Yukarıdaki lastIndexOf metodu gibidir. Farklı olarak arama,aramakonumu parametresi pozisyonundan itibaren yapılır.length()String’in uzunluğunu döndürür.replace(char eskikarakter, char yenikarakter)String’de bulduğu eskikarakter parametresini yenikarakter parametresiile değiştirir.replaceAll(String değiştirilen, String yerinegelen)değiştirilen String’ini bu String içerisinde arar eğer bulursa yerineyerinegelen String’i yerleştirir ve String’i bu haliyle döndürür. Bulamazsadeğişiklik yapmadan String’i döndürür. değiştirilen parametresi regex(Regular Expression) olabilir. *replaceFirst(String değiştirilen, String yerinegelen)Yukarıdaki replaceAll metodu gibidir. Farklı olarak, ilk bulduğudeğiştirilen String’inin yerine yerinegelen String’ini yerleştirir.değiştirilen parametresi regex (Regular Expression) olabilir. *split(String parcakarakterleri)parcakarakterleri String parametresini bu String içerisinde arar eğerbulursa bu karakterlerin bulunduğu yerlere kadar olan kısımları Stringdizisi olarak parçalara ayırır. parcakarakterleri parametresi regex(Regular Expression) olabilir. *split(String regex, int parcasayisi)Yukarıdaki split metodu gibidir. Farklı olarak parcasayisi ile belirtilen sayıkadar diziyi elemana ayırır.startsWith(String önek)String’in önek String’i ile başlıyorsa true aksi durumda false değerinidöndürür.startsWith(String önek, int başlangıç)Yukarıdaki startsWith gibidir. Farklı olarak kontrol işlemine, başlangıçparametresi pozisyonundan başlar.substring(int başlangıç)String’in başlangıç parametresi pozisyonundan sonraki kısmını geridöndürür.substring(int başlangıç, int son)Yukarıdaki substring gibidir. Farklı olarak başlangıç ve son parametreleriarasında kalan String parçasını döndürür.toCharArray()String’i yeni bir char dizisine dönüştürür.toLowerCase()String’in bütün karakterlerini default bölgesel ayara göre küçük harfedönüştürür.toString()String’in kendisini döndürür.toUpperCase()String’in bütün karakterlerini default bölgesel ayara göre büyük harfedönüştürür.trim()String’te bulunan boşlukları kaldırır.


static String valueOf(boolean b)b boolean parametresini String olarak döndürür.static String valueOf(char c)c char parametresini String olarak döndürür.static Stringstatic StringvalueOf(char[] veri)char dizisi olarak tanımlanan veri parametresini String olarak döndürür.valueOf(char[] veri, int konum, int adet)Yukarıdaki valueOf(char[] veri) metodu gibidir. Farklı olarakkonum pozisyonundan adet kadar karakteri String olarakdöndürür.static String valueOf(double d)d double parametresini String olarak döndürür.static String valueOf(float f)f float parametresini String olarak döndürür.static String valueOf(int i)i int parametresini String olarak döndürür.static String valueOf(long l)l long parametresini String olarak döndürür.static String valueOf(Object nesne)nesne Object parametresini String olarak döndürür.Regular Expression* Regex (Regular Expression) : Belirli bir amaca yönelik özel karakterlerdir. Stringişlemlerinde programcıya büyük kolaylıklar sağlar.Bazı Regex (Regular Expression) KodlarıRegular Expression Açıklama. Herhangi bir karakter\d Herhangi bir sayı (0-9)\D Herhani bir sayı olmayan karakter\t Tab karakteri\n Yeni Satır karakteri\s Herhangi bir boşluk karakteri\s+Bir yada birden fazla boşluk karakteri\w Herhangi bir karakter (a-z,A-Z,0-9)\W \w nin tersiGirilen bir cümle içerisindeki kelimeleri ayıran uygulama//regexornek.javaimport java.util.Scanner;public class regexornek{public static void main(String[] args){Scanner alinan = new Scanner(System.in);System.out.print("Bir cumle giriniz:");String s = alinan.nextLine();


String[] kelimeler = s.split("\\s+");System.out.print("Girilen Kelimeler:\n");for (String deg : kelimeler)System.out.println(deg);}}Sonuç:String Class’ına ait metodları gösteren uygulama;//stringmethod.javapublic class stringmethod{public static void main(String[] args){String s1=new String("<strong>Java</strong>");String s2=new String("Programlama Dili");String s3=new String("M");String s4=new String("java");String s5=new String("tatata");String s6=new String("Kocaeli:Meslek:Yuksekokulu");String s7=new String(" Kocaeli ");char[] m1={'a','b','c','d','e','f'};System.out.println("s1 degiskeni="+s1+ " s2 degiskeni ="+s2);System.out.println("s3 degiskeni="+s3+ " s4 degiskeni ="+s4);System.out.println("s5 degiskeni="+s5+ " s6 degiskeni ="+s6);System.out.println("s7 degiskeni="+s7);System.out.print("m1 dizi degiskeni=");for (char d1:m1){System.out.print(d1);}System.out.println("\nString Class Metodlari");System.out.println("charAt Metodu:"+s1.charAt(1));System.out.println("codePointAt Metodu:"+s1.codePointAt(1));System.out.println("codePointBefore Metodu:"+s1.codePointBefore(2));System.out.println("codePointCount Metodu:"+s2.codePointCount(0,5));System.out.println("compareTo Metodu:"+s1.compareTo("L"));System.out.println("compareToIgnoreCase Metodu:"+s1.compareToIgnoreCase(s3));System.out.println("concat Metodu:"+s1.concat(s2));System.out.println("contentEquals Metodu:"+s1.contentEquals("<strong>Java</strong>"));System.out.println("copyValueOf Metodu:"+String.copyValueOf(m1));System.out.println("copyValueOf Metodu:"+String.copyValueOf(m1,2,4));System.out.println("endsWith Metodu:"+s2.endsWith("Dili"));System.out.println("equals Metodu:"+s1.equals(s2));System.out.println("equalsIgnoreCase Metodu:"+s1.equalsIgnoreCase(s4));s1.getChars(0,4,m1,0);


System.out.print("Yeni m1 degiskeni=");for (char d1:m1){System.out.print(d1);}System.out.println();System.out.println("hashCode Metodu:"+s1.hashCode());System.out.println("indexOf Metodu:"+s1.indexOf('v'));System.out.println("indexOf Metodu:"+s1.indexOf('v',3));System.out.println("indexOf Metodu:"+s1.indexOf("ava"));System.out.println("indexOf Metodu:"+s1.indexOf("ava",2));System.out.println("lastIndexOf Metodu:"+s1.lastIndexOf('a'));System.out.println("lastIndexOf Metodu:"+s1.lastIndexOf('a',2));System.out.println("lastIndexOf Metodu:"+s5.lastIndexOf("ta"));System.out.println("lastIndexOf Metodu:"+s5.lastIndexOf("ta",3));System.out.println("length Metodu:"+s1.length());System.out.println("replace Metodu:"+s1.replace('a','e'));System.out.println("replaceAll Metodu:"+s5.replaceAll("ta","ra"));System.out.println("replaceFirst Metodu:"+s5.replaceFirst("ta","ra"));String[] parca=s6.split(":");System.out.println("parca dizi degiskeni=");for (String deg:parca){System.out.println(deg);}parca=s6.split(":",2);System.out.println("2 elemanli parca dizi degiskeni=");for (String deg:parca){System.out.println(deg);}System.out.println("startsWith Metodu:"+s1.startsWith("Jav"));System.out.println("startsWith Metodu:"+s2.startsWith("ro",1));System.out.println("substring Metodu:"+s6.substring(8));System.out.println("substring Metodu:"+s6.substring(8,14));char[] parca1=s1.toCharArray();System.out.println("parca1 dizi degiskeni=");for (int i=0;i


System.out.println("valueOf Metodu:"+s1.valueOf(c21));System.out.println("valueOf Metodu:"+s1.valueOf(c21,1,4));System.out.println("valueOf Metodu:"+s1.valueOf(d20));System.out.println("valueOf Metodu:"+s1.valueOf(f20));System.out.println("valueOf Metodu:"+s1.valueOf(i20));System.out.println("valueOf Metodu:"+s1.valueOf(l20));}//main}//ClassSonuç :


StringBuilder ve StringBuffer Class’ıString Class’ı oldukça güçlü bir Class’tır, fakat ağır string işleme süreçlerinde etkili değildir.Çünkü String nesneleri String nesnesinin içeriğini bir başka String’e aktarma işlemleri içinkullanılan metodlarda değişmez sabit özelliğe sahiptir. String birleştirme işlemlerinde bileyetersiz özelliğe sahiptir.Aşağıdaki birleştirme örneğini inceleyelim;int sayi=5;String mesaj = “Sepette “;String mesaj += sayi;String mesaj += “ adet elma var.”;Bu dört ifade için toplam 5 adet String nesnesi oluşturulur;1. “Sepette “ : mesaj değişkeni bu değer ile oluşturulur.2. “5” : sayi.toString() metodu kullanılarak mesaj değişkeni yeniden oluşturulur.3. “Sepette 5” : mesaj değişkeni tekrar birleştirilerek oluşturulur.4. “adet elma var.” : mesaj değişkeni tekrar birleştirilerek oluşturulur.5. “Sepette 5 adet elma var.” : Dört ifadedin sonunda mesaj değişkeni yeni bir Stringolarak oluşturulur.Programlarda çoğu kere bu tür birleştirme işlemlerini kullanırız. String Class’ının bu türeksikliklerinden dolayı <strong>Java</strong>, alternatif olarak StringBuilder ve StringBuffer Class’larınıtavsiye etmiştir. StringBuilder ve StringBuffer Class’ları birbirinin bir kopyası sayılır. Aynımetod ve aynı String işleme tekniklerini kullanırlar. Tek fark sadece StringBuffer Class’ıçoklu Thread kullanan uygulamalarda daha güvenlidir. StringBuilder bu konuda pek güvenli


değildir fakat StringBuffer Class’ından daha etkisi sonuçlar ortaya çıkartır. StringBuilder,<strong>Java</strong> 1.5 versiyonunda ortaya çıkartılmıştır. Bu yüzden daha eski <strong>Java</strong> Compiler kullananlarbu Class yerine StringBuffer Class’ını kullanabilirler.StringBuilder sb1 = new StringBuilder(“<strong>Java</strong> Programlama Dili”);Bir StringBuilder nesnesini oluşturduğumuzda StringBuilder Class’ı, bellekte 16 byte ve ilaveolarak String’in uzunluğu kadar bir kapasite tahsis eder ve ayrıca otomatik olarak gerekduyulduğunda kapasite arttırabilir.MetodlarDönüş TipiStringBuilder Class’ına ait MetodlarMetod AdıStringBuilder append(boolean b)b boolean parametresini String’e ilave eder.StringBuilder append(char c)c char parametresini String’e ilave eder.StringBuilder append(char[] veri)veri parametresini String’e ilave eder.StringBuilder append(char[] veri, int konum, int uzunluk)Yukarıdaki append metodu gibidir. Farklı olarak karakter dizisinin konumpozisyonunda uzunluk kadarını String’e ilave eder.StringBuilder append(double d)d double parametresini String’e ilave eder.StringBuilder append(float f)f float parametresini String’e ilave eder.StringBuilder append(int i)i int parametresini String’e ilave eder.StringBuilder append(long lo)lo long parametresini String’e ilave eder.StringBuilder append(Object nesne)nesne Object parametresini String’e ilave eder.StringBuilder append(String s1)s1 String parametresini String’e ilave eder.StringBuilder appendCodePoint(int Unicode_kodu)Unicode_kodu ile verilen karakter kodunu String’e ilave eder.intcapacity()String’in bellekte kapladığı kapasiteyi döndürür. (16 byte+ Stringuzunluğu)charcharAt(int indeks)indeks parametresi ile belirtilen pozisyondaki karakteri döndürür.intcodePointAt(int indeks)indeks parametresi ile belirtilen pozisyondaki karakterin Unicode kodkarşılığını döndürür. Örnek : ‘a’ - Unicode Kodu : 97intcodePointBefore(int indeks)indeks parametresi ile belirtilen pozisyondan bir önceki karakterin Unicodekod karşılığını döndürür. Örnek : ‘a’ - Unicode Kodu : 97intcodePointCount(int baslangic_indeks, int bitis_indeks)String nesnesinin değerinin baslangic_indeks ile bitis_indeks arasında


kalan Unicode karakterlerin sayısını döndürür.StringBuilder delete(int başlangıç, int bitiş)String’ten başlangıç ve bitiş arasındaki karakterleri siler.StringBuilder deleteCharAt(int indeks)String’ nesnesinde indeks ile belirtilen pozisyondaki karakteri siler.voidensureCapacity(int minimum_kapasite)String’in kapasitesini en azından minimum_kapasite ile verilendeğere eşit olmasını sağlar.voidgetChars(int başlangıç, int bitiş, char[] hedef,int hedefbaşlangıç)String’in başlangıç ve bitiş pozisyonları arasındaki karakterleri hedefisimli char dizisinin hedefbaşlangıç pozisyonuna kopyalar.intindexOf(String aranan)aranan String parametresini bu String içerisinde arar. Bulduğu ilk konumusayısal olarak döndürür. Bulamazsa -1 değerini döndürür.intindexOf(String aranan, int aramakonumu)Yukarıdaki indexOf metodu gibidir. Farklı olarak arama, aramakonumuparametresi pozisyonundan itibaren yapılır.StringBuilder insert(int konum, boolean b)b boolean parametresini konum pozisyonundan itibaren String’in arasınayerleştirir.StringBuilder insert(int konum, char c)c char parametresini konum pozisyonundan itibaren String’in arasınayerleştirir.StringBuilder insert(int konum, char[] veri)veri char dizisini konum pozisyonundan itibaren String’in arasınayerleştirir.StringBuilder insert(int indeks, char[] veri, int konum, int uzunluk)veri char dizisinin konum pozisyonundan uzunluk kadar karakteriString’in indeks pozisyonuna yerleştirir.StringBuilder insert(int konum, double d)d double parametresini konum pozisyonundan itibaren String’in arasınayerleştirir.StringBuilder insert(int konum, float f)f float parametresini konum pozisyonundan itibaren String’in arasınayerleştirir.StringBuilder insert(int konum, int i)i int parametresini konum pozisyonundan itibaren String’in arasınayerleştirir.StringBuilder insert(int konum, long lo)lo long parametresini konum pozisyonundan itibaren String’in arasınayerleştirir.StringBuilder insert(int konum, Object nesne)toString metodunu çağırarak nesne Object parametresini konumpozisyonundan itibaren String’in arasında yerleştirir.StringBuilder insert(int konum, String s1)s1 String parametresini konum pozisyonundan itibaren String’in arasınayerleştirir.intlastIndexOf(String aranan)


aranan String parametresini bu String içerisinde arar. Bulduğu sonkonumu sayısal olarak döndürür. Bulamazsa -1 değerini döndürür.intlastIndexOf(String aranan, int aramakonumu)Yukarıdaki lastIndexOf metodu gibidir. Farklı olarak arama,aramakonumu parametresi pozisyonundan itibaren yapılır.intlength()String’in uzunluğunu döndürür.StringBuilder replace(int başlangıç, int bitiş, String s1)başlangıç ve bitiş arasındaki tüm karakterleri s1 String parametresi iledeğiştirir.StringBuilder reverse()String’in karakterlerini sondan başa doğru tersine çevirir.voidvoidStringStringStringsetCharAt(int konum, char karakter)konum pozisyonundaki karakteri, karakter parametresi ile değiştirir.setLength(int yeniuzunluk)String’in karakter uzunluğunu yeniuzunluk parametresi ile yenidenayarlar.substring(int başlangıç)String’in başlangıç parametresi pozisyonundan sonraki kısmını geridöndürür.substring(int başlangıç, int son)Yukarıdaki substring gibidir. Farklı olarak başlangıç ve son parametreleriarasında kalan String parçasını döndürür.toString()String’in kendisini döndürür.StringBuilder Class’ına ait metodları gösteren uygulama;//stringbuildermethod.javapublic class stringbuildermethod{public static void main(String[] args){StringBuilder s1=new StringBuilder("<strong>Java</strong>");StringBuilder s2=new StringBuilder("Programlama Dili");StringBuilder s3=new StringBuilder("M");StringBuilder s4=new StringBuilder("java");StringBuilder s5=new StringBuilder("tatata");StringBuilder s6=new StringBuilder("Kocaeli:Meslek:Yuksekokulu");StringBuilder s7=new StringBuilder(" Kocaeli ");StringBuilder s8=new StringBuilder("Trabzon");char[] m1={'a','b','c','d','e','f'};System.out.println("s1 degiskeni="+s1+ " s2 degiskeni ="+s2);System.out.println("s3 degiskeni="+s3+ " s4 degiskeni ="+s4);System.out.println("s5 degiskeni="+s5+ " s6 degiskeni ="+s6);System.out.println("s7 degiskeni="+s7+ " s8 degiskeni ="+s8);System.out.print("m1 dizi degiskeni=");for (char d1:m1){System.out.print(d1);}System.out.println("\nStringBuilder Class Metodlari");System.out.println("append Metodu:"+s1.append(true));//boolean


System.out.println("append Metodu:"+s1.append('C'));//charSystem.out.println("append Metodu:"+s1.append(m1));//char[]System.out.println("append Metodu:"+s1.append(m1,1,3));System.out.println("append Metodu:"+s1.append(1245.456d));//doubleSystem.out.println("append Metodu:"+s1.append(554.456f));//floatSystem.out.println("append Metodu:"+s1.append(250));//intSystem.out.println("append Metodu:"+s1.append(1500l));//longSystem.out.println("append Metodu:"+s1.append("Kocaeli"));//StringSystem.out.println("appendCodePoint Metodu:"+s1.appendCodePoint(65));System.out.println("capacity Metodu:"+s4.capacity());//16 + 4=20System.out.println("charAt Metodu:"+s1.charAt(2));//'v'System.out.println("codePointAt Metodu:"+s1.codePointAt(1));//a-->97System.out.println("delete Metodu:"+s2.delete(1,4));System.out.println("deleteCharAt Metodu:"+s2.deleteCharAt(3));s3.ensureCapacity(20);System.out.println("s3 kapasite:"+s3.capacity());//16 + 20=36s1.getChars(0,4,m1,0);System.out.print("Yeni m1 degiskeni=");for (char d1:m1){System.out.print(d1);}System.out.println();System.out.println("indexOf Metodu:"+s1.indexOf("ava"));System.out.println("indexOf Metodu:"+s1.indexOf("ava",2));System.out.println("insert Metodu:"+s4.insert(1,true));//booleanSystem.out.println("insert Metodu:"+s4.insert(1,'T'));//charSystem.out.println("insert Metodu:"+s4.insert(1,m1));//char[]System.out.println("insert Metodu:"+s4.insert(1,m1,2,3));//char[]System.out.println("insert Metodu:"+s4.insert(1,1245.456d));//doubleSystem.out.println("insert Metodu:"+s4.insert(10,54.456f));//floatSystem.out.println("insert Metodu:"+s4.insert(17,250));//intSystem.out.println("insert Metodu:"+s4.insert(21,1500l));//longSystem.out.println("insert Metodu:"+s4.insert(5,"Eren"));//StringSystem.out.println("lastIndexOf Metodu:"+s5.lastIndexOf("ta"));System.out.println("lastIndexOf Metodu:"+s5.lastIndexOf("ta",3));System.out.println("length Metodu:"+s4.length());System.out.println("replace Metodu:"+s8.replace(1,2,"se"));System.out.println("replace Metodu:"+s8.replace(1,5,"yf"));System.out.println("reverse Metodu:"+s6.reverse());s6.setCharAt(1,'Y');System.out.println("s6 :"+s6+" Uzunlugu:"+s6.length());s6.setLength(40);System.out.println("s6 yeni uzunlugu:"+s6.length());System.out.println("substring Metodu:"+s6.substring(18));System.out.println("substring Metodu:"+s6.substring(20,22));}//main}//ClassSonuç:


Girilen cümle içerisinde geçen ‘a’,’e’,’i’,’o’,’u’ (‘A’,’E’,’I’,’O’,’U’) harflerinin yerine ‘*’karakterini getiren uygulama;//sbuilder1.javaimport java.util.Scanner;public class sbuilder1{static Scanner alinan = new Scanner(System.in);public static void main(String[] args){System.out.print("Bir Cumle Giriniz: ");String s = alinan.nextLine();StringBuilder sb1 = new StringBuilder(s);int sesliharfsayisi = 0;for (int i = 0; i < s.length(); i++){char c = s.charAt(i);if ( (c == 'A') || (c == 'a')|| (c == 'E') || (c == 'e')


|| (c == 'I') || (c == 'i')|| (c == 'O') || (c == 'o')|| (c == 'U') || (c == 'u') ){sb1.setCharAt(i, '*');}}System.out.println();System.out.println(s);System.out.println(sb1.toString());}}Sonuç:For DöngüsüDöngülerBir programın akışını kontrol etmek için bazı yapılar bulunur. Belli bir koşulungerçekleşmesine göre bir iş, gerçekleşmemesine göre başka bir iş yapılabilir. Bir işlemin bellibir koşul sağlanıncaya kadar veya sağlandığı sürece yapılması da istenebilir. Aynı selamı 10kere ekrana basan bir uygulama yazalım.//forileselam.javapublic class forileselam{public static void main(String[] args){for(int i=0;i


Bir işlemin kaç kere yapılacağını belli olduğu tipteki loop'lar 'for' loop'larıdır. Yapısıfor( başlangıç_ifadesi; sonlandırma_koşulu; döngü_artış_ifadesi ){çalıştırılacak_blok;}biçimindedir. Burada for loop'unun içine ilk olarak, en başta (sadece bir kere) yapılmasıistenen işlem, ikinci olarak loop'tan çıkmak için sağlanması beklenen koşul girilir. Son olarakda her sefer yapılması gereken işlem belirtilir. Örnek'te i değişkeni 0'a eşitleniyor, her sefer10'dan küçük mü diye kontrol ediliyor ve her sefer bir arttırılıyor. i=10 olduğunda i>10 ifadesiartık yanlış olacağından loop o noktada bitmektedir. int i=0; ifadesi hem bir değişkendeklarasyonu hem da ilk değer verme işlemidir. Bu, <strong>Java</strong> gibi bir değişkenin tipinin vedeğerinin baştan belli olmasını zorunlu tutan dillerde gereklidir. i++ ifadesi de bir i değerininbir arttırılması anlamına gelir i=i+1 yazmanın kısa ve hızlı bir yoludur.While DöngüsüYukarıdaki işlemi başka bir loop çeşidi olan while loop'u ile de gerçekleştirebilirdik.//whileileselam.javapublic class whileileselam{public static void main(String[] args){int i=0;while(i


Sonuç:biçimindedir. Örnekte for döngüsünün yerine kullanılmıştır ancak while döngüsünün işlevi birişlemi belli bir koşul gerçekleştiği sürece yapmaktır. Bu koşul bir sayının belli bir değereulaşması olduğu gibi döngünün içerisinde belirlenebilecek herhangi bir değer de olabilir.Özetle bu koşul gerçekleştiği sürece bu işlemi yap anlamına gelir.Do-While DöngüsüAynı işlemi while döngüsünün bir başka türü olan do-while döngüsü ile de halledebiliriz.//dowhileileselam.javapublic class dowhileileselam{public static void main(String[] args){int i=0;do{System.out.println("Merhaba Hayat");i++;}while(i


if (sayi == 10)continue;System.out.print(sayi + " ");}System.out.println();}}Sonuç:breakDöngü deyimleri ve switch deyimi içerisinde kullanılan break deyimi, programın akışınıdöngü bloğunun dışına çıkartır.1-10 sayıları aralığında verilen sayının dışında rasgele sayı üreten uygulama;//breakornek.javaimport java.util.Scanner;public class breakornek{public static void main(String[] args){Scanner alinan = new Scanner(System.in);int sayi,istenmeyensayi;System.out.print("Tahmin edilmesini istemediginiz Sayiyi Giriniz [1-10]:");istenmeyensayi=alinan.nextInt();if (istenmeyensayi10 ){System.out.println("Verilen Sayi 1-10 arasinda olmali");System.exit(0);}do{sayi = (int)(Math.random() * 10) + 1;if (sayi != istenmeyensayi)break;} while (sayi == istenmeyensayi);System.out.println("Tahmin edilen sayi:"+sayi);}}Sonuç:If Kontrol Deyimi


Programın akışını kontrol etmekte en çok kullanılan yapı if yapısıdır. Bir koşulgerçekleşiyorsa belli bir işlemi gerçekleşmiyorsa bir başkasını yapmaya yarar. Ancak bu birkez yapılan bir kontroldür ve programın akışı bir kez buradan dallandı mı bir daha aynı koşulabakılmaz. Adı ve cinsiyeti girilen bir insana erkekse selam veren bir uygulama yazalım.Bağlantı OperatörüOperatör Açıklama= = Eşitliğin sağındaki ve solundaki ifade birbirine eşitse true değerini döndürür.!= Eşitliğin sağındaki ve solundaki ifade birbirine eşit değilse true değerini döndürür< Operatörün solundaki sağındakiden küçük ise true değerini döndürür. Operatörün solundaki sağındakiden büyük ise true değerini döndürür.>= Operatörün solundaki sağındakiden büyük veya eşitse true değerini döndürür.Mantıksal OperatörlerOperatör İsim! Not (Değil)& And (Ve)| Or (Veya)^ Xor (Özel Veya)&& Koşullu Ve|| Koşullu Veya//ifileselam.javaimport java.util.Scanner;public class ifileselam{public static void main(String[] args){Scanner alinan = new Scanner(System.in);String isim;System.out.print("Adinizi Giriniz :");isim=alinan.nextLine();if( isim.equals("eren") ){System.out.println("Merhaba " + isim);}}}if( isim.equals("celal") ){System.out.println("Merhaba bay " + isim);}Sonuç:


Burada kontrolü yapılan koşul isim.equals("eren") ve isim.equals("eren") şeklindedir.Yani; girilen değer “eren” değerine eşitse “Merhaba eren”, “celal” ise “Merhaba celal”döndürüyor.If-ElseBir koşulun sağlanmaması durumunda da bir işlemi gerçekleştiren bir program yazalım.//ifelseselam.javaimport java.util.Scanner;public class ifelseselam{public static void main(String[] args){Scanner alinan = new Scanner(System.in);String isim;System.out.print("Adinizi Giriniz :");isim=alinan.nextLine();if( isim.equals("eren") ){System.out.println("Merhaba " + isim);}else {System.out.println("Merhaba bay " + isim);}}}If-Else-If//ifelseifornek.javaimport java.util.Scanner;public class ifelseifornek{public static void main(String[] args){Scanner alinan = new Scanner(System.in);float toplamsatis;float matrah;float komisyonorani;System.out.print("Toplam Satisi Giriniz :");toplamsatis = alinan.nextFloat();if (toplamsatis >= 10000.0)komisyonorani = 0.05f;else if (toplamsatis >= 5000.0)komisyonorani = 0.035f;


}else if (toplamsatis >= 1000.0)komisyonorani = 0.02f;elsekomisyonorani = 0f;matrah = toplamsatis * komisyonorani;System.out.println("Elde Edilen Matrah :" + matrah);}Sonuç:Bu şekilde istendiği kadar if ve else arasında istendiği kadar else if yapısı kullanılabilir.? : Üçlü Şart operatörüBu operatör belirtilen şarta göre bir değer döndüren özel bir operatördür.Kullanım şekli;mantıksal ifade ? doğruysa_dönecek_değer : doğruysa_dönecek_değer;int oran = ( tutar > 1000 ) ? 0.5 : 0.25;Eğer tutar değişkeni 1000’den büyükse oran değişkeni 0.5 değerini alacaktır, değilse 0.25değerini alacaktır.Bu satırın if komutu karşılığı;if (tutar > 1000 )oran = 0.5;elseoran = 0.25;int kitapsayisi=2;String mesaj = “Bu kitap” + ( (kitapsayisi>1) ? “lar ”: “ “ ) + “çok iyi”;Eğer kitapsayisi, 1’den büyükse mesaj değişkeni “Bu kitaplar çok iyi” değerini alacaktır,değilse “Bu kitap çok iyi” değerini alacaktır.1 ile 10 arasında bilgisayarın rasgele olarak ürettiği sayıyı tahmin etme oyunu;//rasgelesayi.javaimport java.util.Scanner;public class rasgelesayi{static Scanner alinan = new Scanner(System.in);static boolean oyunadevammi = true;


public static void main(String[] args){System.out.println("Sayi Tahmini Oyunu");while (oyunadevammi){oyunabasla();}System.out.println("\nOynadiginiz icin tesekkurler!");}//main sonupublic static void oyunabasla(){boolean gecerligiris;int sayi, tahminsayi;String cevap;sayi = rasgelesayiuret(1,10);System.out.print("\n[1 ile 10] arasinda bir sayi giriniz :");do{tahminsayi = alinan.nextInt();gecerligiris = true;if ( (tahminsayi < 1) || (tahminsayi > 10) ){System.out.print("[1 ile 10] arasi bir sayi girmelisiniz:");gecerligiris = false;}} while (!gecerligiris);if (tahminsayi == sayi)System.out.println("\nBravo! Tuttugum sayiyi tahmin ettiniz");elseSystem.out.println("Uzgunum! Tuttugum sayiyi tahmin edemediniz."+ " Tuttugum sayi :" + sayi);do{System.out.print("\nTekrar Oynamak Ister misiniz ? (E / H)");cevap = alinan.next();gecerligiris = true;if (cevap.equalsIgnoreCase("E"));else if (cevap.equalsIgnoreCase("H"))oyunadevammi = false;elsegecerligiris = false;} while (!gecerligiris);}public static int rasgelesayiuret(int minimum, int maksimum){//iki sayı arasında rasgele sayı üretir.return (int)(Math.random()* (maksimum - minimum + 1)) + minimum;


}}Sonuç:Switch-Case YapısıÇok fazla sayıda if-else kullanmak yerine basit tipte veriler için switch-case diye başka birkontrol ifadesi bulunmaktadır. Kullanıcıdan girilen sayıya göre bir işlem gerçekleştiren biruygulama yazalım. Kullanıcı tek rakam girmeye zorlanırsa 10 tane ihtimal vardır ve çoksayıda if-else yapısı kurmak işi karmaşıklaştıracaktır.//switchornek.javaimport java.util.Scanner;public class switchornek{public static void main(String[] args){Scanner alinan = new Scanner(System.in);int sayi;System.out.print("0-9 arasi bir sayi giriniz :");sayi = alinan.nextInt();switch(sayi){case 0: System.out.println("0 Girdiniz.");break;case 1: System.out.println("1 Girdiniz.");break;case 2: System.out.println("2 Girdiniz.");break;case 3: System.out.println("3 Girdiniz.");break;case 4: System.out.println("4 Girdiniz.");break;case 5: System.out.println("5 Girdiniz.");break;case 6: System.out.println("6 Girdiniz.");break;case 7: System.out.println("7 Girdiniz.");break;case 8: System.out.println("8 Girdiniz.");break;case 9: System.out.println("9 Girdiniz.");break;default: System.out.println("Farkli bir sayi Girdiniz.");break;}}}


Sonuç:switch ifadesi sadece int, char gibi basit tiplerle çalışmakta, içerisine herhangi bir class tipikabul etmemektedir.Tutar ÇeşidiKesinti OranıA % 2B % 3.5C % 5Diğerleri % 0Yukardaki tabloya göre switch-case yapısını aşağıdaki gibi kullanabiliriz;double komisyonorani;switch (tutarcesidi){case ‘A’:case ‘a’:komisyonorani = 0.02;break;case ‘B’:case ‘b’:komisyonorani = 0.035;break;case ‘C’:case ‘c’:komisyonorani = 0.05;break;default:komisyonorani = 0.0;break;}Araba yıkama paketlerinin seçimini ve içeriklerini gösteren bir switch kullanan uygulama;//switchornek1.java//Araba yikama paket icerikleri uygulamasiimport java.util.Scanner;public class switchornek1{static Scanner alinan = new Scanner(System.in);public static void main(String[] args){System.out.println("Araba Yikama Paket icerikleri Uygulamasi\n\n");


System.out.print("Araba Yikama Paket kodunu giriniz[a,b,c,d,e] : ");String s = alinan.next();char p = s.charAt(0);String paketicerikleri = "";switch (p){case 'E':case 'e':paketicerikleri = paket_e() + paket_d() + paket_c()+ paket_b() + paket_a();break;case 'D':case 'd':paketicerikleri = paket_d() + paket_c()+ paket_b() + paket_a();break;case 'C':case 'c':paketicerikleri = paket_c() + paket_b() + paket_a();break;case 'B':case 'b':paketicerikleri = paket_b() + paket_a();break;case 'A':case 'a':paketicerikleri = paket_a();break;default:paketicerikleri = "Verilen paket icin bir icerik bulunamadi.";break;}//switch sonuSystem.out.println("\nYikama Paketi icerikleri:\n");System.out.println(paketicerikleri);} //main sonupublic static String paket_a(){return "\tYikama, Elektrik Supurgesiyle Temizleme ve Kurulama.\n";}public static String paket_b(){return "\tYuzey Cilalama,\n";}public static String paket_c(){return "\tIc doseme temizleme,\n";}public static String paket_d()


{return "\tAraba Lastiklerini temizleme,\n";}public static String paket_e(){return "\tIc ortama koku uygulama,\n";}} //class sonuSonuç:İstisnalar (Exceptions)Programcı mümkün olduğu kadar programının hatasız bir şekilde çalışması için çaba sarfeder.Programdan istenilen, yapması gereken işlemlerin yanında bir de hatasız bir şekildeçalışmasıdır. Tam hatasız şekilde çalışan bir program yazmak bazı durumlarda imkansız halegelebilir. Burada asıl önemli olan tam hatasız çalışan bir program yazmak değil bunun yerinehata oluştuğunda bunun tespit edilmesi, kullanıcıya bildirilmesidir. Hata oluştuğundaprogramın mümkün mertebede çökmemesi gereklidir. Buna dayalı olarak hata tespit edilir vegerekli çözümlere gidilebilir. Programlama dilleri hata kontrolü konusunda gelişmiş tekniklerüretmişlerdir. Bu tekniklerden biri de Exception (istisna) adı verilen özel nesnelerinkullanımıdır. Bir exception, <strong>Java</strong> programında hata meydana geldiğinde oluşturulan birnesnedir. Hata meydana geldiğinde <strong>Java</strong>, hatayı otomatik olarak düzeltemez. Exceptionnesnesi, oluşan hatanın tipi konusunda bilgiler içermektedir. Bunlardan bazıları, hatanınsebebi, hatayı oluşturan Class’ın adı gibi bilgilerdir.Meydana gelen istisnanın her biri farklı bir istisna Class’ı ile temsil edilmiştir. Örneğinaşağıda bazı tipik olarak karşılaşılan istisnalar verilmiştir:


IllegalArgumentException: Kullanılan metoda yanlış bir parametre verdiğinizde buistisna meydana gelir.InputMismatchException: Konsoldan yapılan veri girişi ile Scanner Class’ı ilealınan veri türleri uyuşmadığı zaman bu istisna meydana gelir. Örneğin veri türüolarak sayı istendiğinde fakat konsoldan string girildiğinde.ArithmeticException: Aritmetik işlemlerde yanlış bir kullanım sırasında bu istisnameydana gelir. Örneğin bir tamsayıyı sıfıra böldüğünüzde.IOException: Düzeltilemeyen I/O (Input/Output) hataları esnasında bu istisnameydana gelir.ClassNotFoundException: İhtiyaç duyulan bir Class’ın bulunamadığı esnada buistisna meydana gelir.Bir hata meydana geldiğinde ve bir Exception (İstisna) nesnesi oluşturulduğunda, <strong>Java</strong> birException atılması gerektiğini söyler. Programcı isterse bu istisnayı yakalayabilir. Bu sayedeoluşan hata kontrol edilmiş olur ve kullanıcıya bir hata mesajı yerine açıklayıcı bir mesaj veyaprogramın doğru bir şekilde çalışabilmesi için gerekli bir program akışı yapılabilir.Aşağıda bir istisna görülmektedir. Scanner Class’ına ait nextInt metoduyla integer sayıgirilmesi isteniyor fakat bunun yerine bir karakter (“a”) giriliyor. Sonuç olarak <strong>Java</strong>inputMismatchException Exception nesnesini oluşturuyor.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!