ĠĢte java - papatya yayıncılık eğitim aŞ · olmuĢ, ama hiÑbir dil tãm ortamlarda...
TRANSCRIPT
ĠĢte JAVA
Vedat CoĢkun
BãĢra Ézdenizci
Kerem Ok
~ II ~
PAPATYA YAYINCILIK EĞĠTĠM Bilgisayar Sis. San. ve Tic. A.ġ.
Ankara Caddesi, Prof. Fahreddin Kerim GÞkay Vakf× ĠĢhan× GiriĢi
No: 11/3, Cağaloğlu (Fatih) / Ġstanbul
Tel : (+90 212) 527 52 96 - (+90 532) 311 31 10
Faks : (+90 212) 527 52 97
e-Posta : [email protected]
Web : www.papatya.gen.tr www.papatyabilim.com.tr
ĠĢte Java - Vedat CoĢkun, BãĢra Ézdenizci, Kerem Ok
1. Bas×m Eylãl 2016
Yay×n Dan×Ģman× : Dr. Rifat ÆÉLKESEN
Yay×na Haz×rlayan : Dr. Cengiz UĞURKAYA (Post-Edu Institute)
Êretim : Necdet AVCI
Pazarlama : Mustafa DEMĠR
Sat×Ģ : Tãrkiyeřnin Ġnternet KitapÑ×s× www.tdk.com.tr
Sayfa Dãzenleme : Mãge URCAN
Kapak Tasar×m : Papatya ve Kelebek Tasar×m
Bas×m ve Ciltleme : Ézkaracan Matbaac×l×k (Sertifika No: 12228)
Evren Mah. Gãlbahar Cad. No:62 GãneĢli/Ġstanbul
í Bu kitab×n her tãrlã yay×n hakk× Papatya Yayıncılık Eğitim A.ġ.řye aittir.
Yay×nevinden yaz×l× izin al×nmaks×z×n al×nt× yap×lamaz, k×smen veya tamamen
hiÑbir Ģekil ve teknikle ÆOĞALTILAMAZ, BASILAMAZ,
YAYIMLANAMAZ. Kitab×n, tamam× veya bir k×sm×n×n fotokopi makinesi,
ofset gibi teknikle Ñoğalt×lmas×, hem Ñoğaltan hem de bulunduranlar iÑin
yasad×Ģ× bir davran×Ģt×r.
CoĢkun, Vedat; Ézdenizci, BãĢra; Ok, Kerem.
ĠĢte Java! / Vedat CoĢkun, BãĢra Ézdenizci, Kerem Ok - Ġstanbul: Papatya Yay×nc×l×k Eğitim, 2016.
xiv, 368 s.; 24 cm.
KaynakÑa ve dizin var.
ISBN 978-975-9594-02-8
Sertifika No: 11218
1. Nesneye YÞnelik Programlama 2. Programlama Dilleri 3. Algoritmalar 4. Java Programlama Dili
I. Title
~ III ~
Sevgili Ailem;
Mehmet, Fatma, Özgür, Arda, Müjdat, Selma, Müge, Kılınç, Özge, Rüya;
Ben sizlere zaten kendimi adamışım; bir de üstüne bu kitabı adamışım, çok mu . . .
Vedat COŞKUN
~ IV ~
Prof. Dr. Sıddık Binboğa YARMAN ile Prof. Dr. Şirin TEKİNAY’a sevgilerimle...
Prof. Dr. Vedat COŞKUN
~ V ~
ĠÑindekiler
Önsöz xi
1. Bölüm 1. Bir Çırpıda Java 15
1.1. Java Program× GeliĢtirmek 16
1.1.1. GeliĢtirme Ortam×n×n Haz×rlanmas× 16
1.1.2. Æal×Ģt×rma Ortam×n×n Haz×rlanmas× 17
1.1.3. Program×n Yaz×lmas× 21
1.1.4. Program×n Derlenmesi 23
1.1.5. Program×n Æal×Ģt×r×lmas× 25
1.2. Java Program Yap×s× 26
1.3. Veri ĠĢleme 27
1.3.1. Tamsay×lar 29
1.3.2. Okuma ve Yazma 29
1.3.3. GerÑel Say×lar 32
1.3.4. Mant×ksal Veriler 34
1.3.5. Karakterler 34
1.4. Kontrol Yap×lar× 36
1.4.1. IF Kontrol Yap×s× 37
1.4.2. IF-ELSE Kontrol Yap×s× 37
1.4.3. SWITCH Kontrol Yap×s× 37
1.4.4. KoĢullu OperatÞr Kontrol Yap×s× 37
1.5. DÞngã Yap×lar× 39
1.5.1. FOR DÞngã Yap×s× 40
1.5.2. WHILE DÞngã Yap×s× 40
1.5.3. DO-WHILE DÞngã Yap×s× 40
1.6. Diziler 42
1.7. Metotlar (Yordamlar) 44
1.8. Dosya ĠĢlemleri 47
1.8.1. Dosyaya Yazma 47
1.8.2. Dosyadan Okuma 48
1.9. Stringler 49
1.10. Ak×Ģ Diyagramlar× 53
1.11. Kaliteli program Yaz×m Kurallar× 55
1.12. Ézet 56
Bölüm 2. Bilgisayar ve Sayı Sistemleri 59
2.1. Bilgisayarlar 60
2.2. Bilgisayar ÆeĢitleri 61
~ VI ~
2.3. Bilgisayar BileĢenleri 62
2.3.1. Donan×m BileĢenleri 62
2.3.2. Yaz×l×m BileĢenleri 62
2.4. Programlama Dilleri 64
2.4.1. Makine Dilleri 64
2.4.2. Æevirici Dilleri 65
2.4.3. Êst Seviye Diller 66
2.4.3.1. Derleyiciler, Yorumlay×c×lar ve Bağlay×c×lar 66
2.4.3.2. Java Sanal Makinesi (JVM) 67
2.5. Say× Sistemleri 68
2.5.1. Veri ÆeĢitleri 69
2.5.2. Kesikli Say× Sistemleri 69
2.5.3. Onlu Say× Sistemi 70
2.5.4. Ġkili Say× Sistemi 71
2.5.5. Onalt×l× Say× Sistemi 73
2.5.6. 1ře Tãmleme 75
2.5.7. 2řye Tãmleme 75
2.6. Ézet 77
Bölüm 3. Java’ ya GiriĢ 79
3.1. Javařn×n Ézellikleri 79
3.2. Java Program ÆeĢitleri 80
3.3. Java GeliĢtirme Ortam× 81
3.4. Java Program× GeliĢtirme Sãreci 84
3.5. Program Érnekleri 85
3.5.1. Ekrana Yazma 85
3.5.2. Okuma 91
3.5.3. Toplama 91
3.6. Ġsim Verme 92
3.7. Ézel Anlaml× Kelimeler 93
3.8. Ézet 94
Bölüm 4. Sayılar, Bellek, Okuma ve Yazma 95
4.1. Veri Tãrleri 95
4.2. Tamsay×lar 98
4.3. Programlar×n Æal×Ģma Sãreci 101
4.4. Programlar×n Bellek Kullan×m× 102
4.5. DeğiĢken Tan×mlama 105
4.6. Değer Atama 108
~ VII ~
4.7. OperatÞrler ve Ġfadeler 109
4.8. Sabit Değer 113
4.9. Bilgi ĠĢlem DÞngãsãnde Okuma ve Yazma 114
4.10. Yazma 115
4.11. Tamsay× Okuma 116
4.12. Dãzenli Yazma 116
4.13. GerÑel Say×lar 119
4.13.1. GerÑel Say×lar×n Tan×m× 119
4.13.2. Javařda GerÑel Say×lar 120
4.14. Ézet 122
4.15. Érnekler 122
4.16. Sorular 124
Bölüm 5. Mantıksal Veriler ve Kontrol Yapıları 127
5.1. Mant×ksal Verilerin Tan×m× 128
5.2. Javařda Mant×ksal Veri 129
5.2.1. Z×t Anlam OperatÞrã 129
5.2.2. KarĢ×laĢt×rma OperatÞrleri 129
5.2.3. BirleĢtirme OperatÞrleri 131
5.3. Kontrol Yap×lar× 134
5.4. IF Kontrol Yap×s× 135
5.5. IF-ELSE Kontrol Yap×s× 140
5.6. SWITCH Kontrol Yap×s× 148
5.7. KoĢullu OperatÞr 152
5.8. Ézet 153
5.9. Érnekler 153
5.10. Sorular 157
Bölüm 6. Karakterler 159
6.1. Javařda Karakterler 159
6.2. Javařda Karakter ĠĢleme 164
6.3. KaÑ×Ģ Karakterleri 168
6.4. Ézet 170
6.5. Érnekler 171
6.6. Sorular 172
~ VIII ~
Bölüm 7. Döngü Yapıları 175
7.1. FOR DÞngã Yap×s× 175
7.2. WHILE DÞngã Yap×s× 182
7.3. DO-WHILE DÞngã Yap×s× 186
7.4. BREAK ile CONTINUE Ġfadeleri 189
7.5. Ézet 189
7.6. Érnekler 189
7.1. Sorular 195
Bölüm 8. Diziler 201
8.1. Diziler 201
8.2. Dizi ĠĢlemleri 207
8.2.1. Dizi Elemanlar×na EriĢmek 207
8.2.2. Dizi - Dizi Referans× 209
8.2.3. Dizi Uzunluğunu Bulmak 213
8.2.4. Dizi Kopyalamak 216
8.3. Æok Boyutlu Dizler 220
8.4. Ézet 223
8.5. Érnekler 223
8.6. Sorular 229
Bölüm 9. Metotlar 233
9.1. Metotlar×n Kullan×m Amac× 234
9.2. Metot Yap×s× 236
9.3. Metot Ġsmini Yãkleme (Overloading) 242
9.4. DeğiĢken EriĢim Menzili 245
9.5. Ak×Ģ Kesme / Bekleme (Interrupt) 247
9.6. Metotlarda Dizi Kullan×m× 249
9.7. Ézet 256
9.8. Érnekler 256
9.9. Sorular 263
Bölüm 10. Dosya ĠĢlemleri 265
10.1. Dosyaya Yazma 266
10.2. Dosyadan Okuma 268
10.3. Dosya ile Klavyeden Okuma Fark× 272
10.4. Dosya Ézelliklerini GÞrãntãleme 272
10.5. Ézet 274
~ IX ~
10.6. Érnekler 274
10.7. Sorular 278
Bölüm 11. Stringler 281
11.1. Javařda Stringler 281
11.2. String ĠĢlemleri 282
11.3.1. String Uzunluğu 284
11.3.2. String ĠÑinden Karakter Okumak 284
11.3.3. String ĠÑinden String OluĢturmak 285
11.3.4. String BiÑimlendirmek 286
11.3.5. Stringřleri Birbirine Eklemek 287
11.3.6. String ile Karakteri KarĢ×laĢt×rmak 289
11.3.7. Ġki Stringři KarĢ×laĢt×rmak 289
11.3.8. Basit Veri ile Stringřleri Birbirine DÞnãĢtãrmek 292
11.3. Komut Sat×r×ndan Programa Değer GÞnderme 293
11.4. Ézet 295
11.5. Érnekler 295
11.6. Sorular 299
Bölüm 12. Sınıflar ve Nesneler 307
12.1. Basit Veri - Zengin Veri 308
12.2. S×n×f Uygulamas×: Banka 309
12.2.1. Hesap ĠĢlemleri 309
12.2.2. Hesap Program× 311
12.2.3. Hesap S×n×f×n× Yaratma 312
12.2.4. Hesap Nesnelerini Yaratma ve Kullanma 314
12.2.5. Hesap Hareket ĠĢlemleri 318
12.3. S×n×f Uygulamas×: AraÑ 322
12.4. Miras (Kal×t×m) 330
12.5. S×n×f Uygulamas×: Kesirli Say× 331
12.6. Ézet 337
12.7. Érnekler 337
12.8. Sorular 348
Kaynakça 355
Dizin
359
~ X ~
~ XI ~
ÉnsÞz
Lise hayat×m×z×n sonlar×na yaklaĢt×kÑa, hangi mesleği seÑeceğimiz konusunun, en
Þnemli gãndem maddelerimizden olduğunu hat×rl×yoruz, değil mi? Bu konuda
dãĢãnmeye baĢlad×ğ×m×zda karĢ×m×za s×kl×kla Ñ×kan geleceğin mesleği (!) haberleri
elbette dikkatimizi ÑekmiĢtir. Her y×l farkl× meslekleri Þne Ñ×karan bu tãr haberlere
gÞsterilen rağbet ãniversitelerimizde bu programlar×n daha s×kl×kla aÑ×lmas×na,
Þğrencilerin bu programlara yoğun ilgi gÞstermesine, netice olarak da bu alanlarda
okumuĢ pek Ñok mezunun iĢ kuyruklar× oluĢturmas×na neden olmuĢtur. Ne yaz×k ki
bu Ģekilde Þne Ñ×kar×lan mesleklerden Ñok az×n×n gerÑekten de geleceğin mesleği
olduğu bir gerÑektir.
Yirminci yãzy×l×n baĢlar×nda bilim adamlar×n×n yapt×klar× yoğun Ñal×Ģmalar, ayn×
yãzy×l×n baĢlar×ndaki Dãnya savaĢlar×nda savunma (!) amaÑl× olarak ãstãnlãk elde
etme gayretindeki hãkãmetler taraf×ndan desteklendiğinde, gãnãmãz bilgisayarlar×-
n×n ilk Þrnekleri ortaya Ñ×kmaya baĢlad×. Ayřa inilmesi; Marsřa ve Jãpiterře robot
gÞnderilmesi; kablosuz iletiĢim, genetik, nano teknoloji, mikrobiyoloji gibi teknolo-
jilerde ilerleme sağlanmas×; Dãnya ãzerinde herhangi iki yer aras×nda sÞzlã ve hatta
gÞrsel olarak anl×k gÞrãĢme yap×lmas×; kağ×t para yerine say×sal paran×n kullan×lma-
s×; ancak ve ancak bilgisayar teknolojisindeki geliĢmeler sayesinde mãmkãn ola-
bilmiĢtir. Ġnsanoğlunun bugãnkã teknolojik geliĢmeleri gerÑekleĢtirmesinde bilgisa-
yar×n rolã, her konuda bilgisayar×n kullan×lmas×na ve netice olarak da bilgisayar
konusunda bãyãk iĢ potansiyeline neden olmuĢtur.
Netice olarak rahatl×kla sÞyleyebiliriz ki biliĢim, gãnãmãzãn ve geleceğin en gÞzde
mesleğidir. BiliĢim alan×nda teknik ya da yÞneticilik iÑerikli eğitim alan kiĢilerin iĢ
potansiyeli, hem ulusal hem de uluslararas× alanda Ñok yãksektir. Bilgisayar sistem
uzman×, ağ yÞneticisi, gãvenlik uzman×, veritaban× tasar×mc×s×, veritaban× yÞneticisi,
sistem analisti, programc×, yaz×l×m mãhendisi, web tasar×mc×s× ve geliĢtiricisi, yaz×-
l×m s×nama uzman×, bãyãk veri uzman×, bulut uzman×, biliĢim sistemleri yÞneticisi
ve yÞnetim biliĢim sistemleri uzman× gibi pek Ñok meslek, evrensel olarak iĢ potan-
siyeli yãksek olan mesleklerdir. Yak×n, orta ve uzun vadede biliĢim iÑerikli meslek-
ler hep gÞzde olarak kalacakt×r.
Bu mesleklerin hepsinin ortak yÞnã, bilgisayar ãzerinde Ñal×Ģmalar×d×r. Peki bilgi-
sayar dediğimizde akl×m×za ne gelir? Dizãstã bilgisayar, masaãstã bilgisayar, belki
sunucu bilgisayar. Oysa gãnãmãzde hemen her elektronik cihaz ayn× zamanda bir
bilgisayard×r; en az×ndan bilgisayar bu cihaz×n Þnemli bir parÑas×d×r. Érneğin -cep
telefonu da dediğimiz- ak×ll× telefon asl×nda tam anlam× ile bir bilgisayard×r. Kredi
kart×n×n ve ak×ll× telefonun iÑindeki ak×ll× kart da bir bilgisayard×r. Televizyon da bir
~ XII ~
bilgisayard×r, ekran× biraz bãyãktãr, o kadar. BulaĢ×k makinesi, ÑamaĢ×r makinesi,
buzdolab×, otomobil, uÑak, helikopter, tablet, robot ya da elektronik kaykay, iÑlerin-
deki bilgisayar parÑalar×n×n iĢlevleri sayesinde bu kadar kullan×Ģl× hale gelmiĢ elekt-
ronik cihazlard×r.
Bilgisayarlar×n fabrikada ãretimi yap×lan fiziksel parÑalar×na donan×m; bu parÑalar×n
iĢlevsel hale gelmesi iÑin ãzerinde Ñal×Ģt×r×lan programlara da yaz×l×m diyoruz. Bil-
gisayarlar×n geliĢtirilmeye baĢlanmas×ndan itibaren bu harika cihazlar×n iĢlevlerini
art×rmak ãzere ãzerlerinde sãrekli olarak daha geliĢmiĢ programlar yaz×lmas×na
Ñal×Ģ×lm×Ģt×r.
Zaman iÑinde etkin program yaz×lmas×na olanak sağlamak ãzere farkl× programlama
dilleri de ortaya Ñ×kar×lm×Ģt×r. Baz× programa dilleri kiĢisel bilgisayarlarda, baz×lar×
cihazlara entegre edilmiĢ bilgisayarlarda, baz×lar× ak×ll× telefonlarda tercih edilen dil
olmuĢ, ama hiÑbir dil tãm ortamlarda kullan×lamam×Ģt×r; Java hariÑ. Java, yukarda
sayd×ğ×m×z ve daha birÑok bilgisayar tãrãnãn tamam×nda kullan×labilen bir prog-
ramlama dilidir. Java dilinin bugãne kadar gelmiĢ geÑmiĢ tãm programlama dilleri-
ne olan Þnemli ãstãnlãğã tam da budur: Java, her tãrlã bilgisayarda geÑerli bir
programlama dilidir. Java dilini Þğrenen bir kiĢi, yeni bir dil Þğrenmeye gerek kal-
madan hemen her tãrlã cihaz iÑin program yazarak enerjisini verimli bir Ģekilde
kullan×p harcayabilir.
Bu kitap ile, Java dilinde baĢlang×Ñ seviyesinde program yazmay× Þğrenmenizi he-
defledik. Buna karĢ×n kitab×m×z× yazarken, farkl× profildeki kullan×c×lar×n varl×ğ×n×
da dikkate ald×k. Kitab×m×z× daha Þnce bilgisayarlar×n nas×l Ñal×Ģt×ğ× konusunda bilgi
sahibi olan ya da olmayan; baĢka programlama dil(ler)inde baĢlang×Ñ, orta ve hatta
ileri dãzeyde program yazma yeteneğine ve hatta tecrãbesine sahip olan ya da ol-
mayan; h×zl× ya da hazmederek ilerlemek isteyen herkesin kullanabileceği bir Ģekil-
de haz×rlad×k.
Kitab×m×z× farkl× profildeki kullan×c×lar×n kullanmalar×n× sağlayan unsurlar× Ģu Ģe-
kildedir:
Birinci bÞlãm, h×zl×ca Java program× yazmay× hedefleyen kiĢilere Þzel olarak
haz×rlanm×Ģ h×zl× fakat kapsaml× bir Þzeti iÑermektedir.
Kitab×m×z×n pek Ñok yerine koyduğumuz ipuÑlar×, o anda anlat×lan konu ile il-
gili faydal× olabilecek ek bilgiler iÑermektedir. Bu bilgileri anlamakta zorlanan
ya da bu konuda zaman kaybetmek istemeyen kullan×c×, bu ipuÑlar×n× gÞz ard×
edebilir.
Fazladan program Þrnekleri, ilgili konuyu henãz iÑselleĢtirmemiĢ olan, daha
fazla pekiĢtirmek isteyen ya da bir konuyu derinliğine ve tam olarak Þğrenme-
den sonraki konulara geÑmek istemeyen kullan×c×lar×n taleplerini karĢ×lamak
ãzere yaz×lm×Ģt×r.
~ XIII ~
Javařy× ezberleyerek değil, anlayarak Þğrenmenizi sağlayan bir kitap yazmak, temel
motivasyonumuz oldu. Bellek yÞnetiminin detayl× anlat×m×, ÑokÑa Þrnekler, ipuÑlar×
ve genel olarak anlat×m yÞntemimiz hep bu amaca dÞnãk olarak oluĢturuldu.
Kitab×m×z× bir ders kitab× olacak Ģekilde haz×rlad×k. Ders sãrecine katk×da bulunmak
ãzere pek Ñok Þrnek program ve soru yaz×ld×. BÞlãm say×s×n×, Êniversitelerdeki
dÞnem say×s×nda uygun olacak Ģekilde oluĢturduk. Konular×, her hafta bir bÞlãmãn
iĢleneceği Ģekilde yazd×k. BÞylece pedagojik aÑ×dan hem Þğretim ãyelerine, hem de
Þğrencilere kolayl×k sağlamay× hedefledik.
BÞlãm 1řde, kitab×m×zda anlatacağ×m×z tãm konular×n bir Þzetini veriyoruz asl×nda.
Detaylara girmeden Þnce Javařn×n unsurlar×n× h×zl×ca gÞrmek isteyen okuyucular,
bu bÞlãmã kullanabilirler. BaĢka dilde program yazma tecrãbesi olan kiĢiler iÑin de
bu bÞlãm faydal× olabilir. Buna karĢ×n bu bÞlãmde verilen her konu, ilgili bÞlãmde
Ñok daha detayl× olarak yeniden anlat×lacakt×r. O nedenle dileyen okuyucular bu
bÞlãmã okumadan sonraki bÞlãmlere geÑebilirler.
BÞlãm 2řde, bilgisayar hakk×nda genel bilgiler veriyoruz. Bilgisayar×n fiziksel k×-
s×mlar×n×n ifadesi olan bilgisayar donan×m× ile, donan×m ãzerine yãklenen program-
lar×n ifadesi olan yaz×l×m konusunda temel bilgiler konseptini anlamam×za yard×mc×
olacak. Bilgisayar×n nas×l Ñal×Ģt×ğ×n×, sadece bu kitab×n okuyucular×n×n ihtiyac×n×
karĢ×layacak Ģekilde genel ifadeler ile anlatacağ×z. Bilgisayar iÑin ikili say× sistemi
Ñok Þnemlidir; bunun nedenini ve ikili say× sistemini yine odak noktam×z× kaybet-
meden Þrneklerle aÑ×klayacağ×z. Bu konularda daha Þnceden bilgi sahibi olan oku-
yucular×n da bu bÞlãme en az×ndan h×zl×ca gÞz atmalar× faydal× olur dãĢãncesinde-
yiz.
BÞlãm 3řte, Java ile tan×Ģacağ×z. Javařn×n nas×l ortaya Ñ×kt×ğ×n× Ñok k×sa anlatt×ktan
sonra Javařn×n neden Þnemli bir dil olduğunu ve diğer diller aras×nda gÞzde bir dil
olmas×n×n nedenlerini yeterli detayda anlatacağ×z. Java program× yazmak iÑin alter-
natif olarak ne tãr yaz×l×m araÑlar× ve ortamlar× kurabileceğimizi anlatarak, size en
uygun olan×n× nas×l seÑeceğinize iliĢkin olarak yol gÞsterecek parametreleri ortaya
koyacağ×z. Bu kitab× okuman×z×n temel amac× olan Java dilinde program yazmaya
da yine bu bÞlãmde basit birkaÑ Þrnek ãzerinden baĢlayacağ×z.
BÞlãm 4řte, birkaÑ konuyu iÑ iÑe anlatacağ×z. Java programlar×nda bilgilerin iĢlen-
mesi iÑin oluĢturulan yap×lar×n genel tan×m× bu bÞlãmãn baĢlang×c×n× oluĢturuyor.
ĠĢlenecek bilgiler iÑinde hem tamsay×lar×n, hem de gerÑel say×lar×n nas×l iĢlendiği
konusunu bu bÞlãmde detayl× olarak anlatacağ×z. Bilgileri saklamaya ve iĢlemeye
yarayan ana bellek (k×saca: bellek) ile yard×mc× bellek (k×saca: sabit disk), bilgisa-
yarlar×n temel parÑalar×ndand×r. Programlar×n belleği ne Ģekilde kulland×ğ×n× Þğ-
renmek, bilgisayar program× yazma sãrecinde Ñok Þnemli katk× sunabilecek bir
konudur. Konular×n bellek iliĢkisi ile birlikte anlat×lmas×, kitab×m×z×n baĢ×ndan so-
nuna kulland×ğ×m×z bir yÞntemdir. ĠĢte bu bÞlãmde, programlar×n verileri bellekte
ne Ģekilde iĢlediği detayl× olarak anlat×lmaktad×r.
~ XIV ~
BÞlãm 5řte, bir komutun, ancak belirli koĢullar sağland×ğ× taktirde Ñal×Ģt×r×lmas×n×
sağlayan kontrol yap×lar×n× anlatacağ×z. BÞylece, Java program×m×zdaki komutlar×n
sadece yukar×dan aĢağ×ya ve s×ra ile Ñal×Ģt×r×lmas× ile k×s×tl× kalmay×p, komutlar×n
belirli koĢullarda Ñal×Ģt×r×lmas×n× ya da gÞz ard× edilmesini nas×l yapabileceğimizi
Þğreneceğiz.
BÞlãm 6řda metnin temel taĢ× olan karakterlerin Javařda nas×l iĢlendiğini Þğrenece-
ğiz. Bu doğrultuda Javařda kullan×lan ASCII ve Unicode karakter listesi ãzerinden
program Þrnekleri ile konuyu pekiĢtireceğiz.
BÞlãm 7řte, bir komutun birden Ñok kez tekrar edilmesi iÑin kullan×labilecek olan
yap×lar× anlatacağ×z. BÞylece, ayn× iĢi pek Ñok kez yapmak iÑin ayn× komutu tekrar-
dan yazmak yerine uygun bir dÞngã yap×s×n× nas×l kullanabileceğimizi Þğreneceğiz.
Odak noktam×z× kaÑ×rmamak iÑin yine tamsay×lar ãzerinde Ñal×Ģacağ×z. Diğer veri
tãrlerine iliĢkin koĢullu Ñal×Ģma konusundaki bilgileri, o veri tãrãnã anlatt×ktan
hemen sonra ayn× bÞlãm iÑinde vereceğiz.
BÞlãm 8řde ayn× veri tãrãne sahip birden Ñok değeri kolayl×kla yÞnetebilmek iÑin
kullan×lan dizi yap×s×n× anlatacağ×z. Dizi, Javařda isimsiz bir nesne olarak yarat×l×r
ve dizi elemanlar×na eriĢim, dizi referans× kullan×larak yap×l×r. Dolay×s× ile dizi ko-
nusu, s×n×f ve nesne yap×s×ndan bağ×ms×z olarak anlat×lamaz. Oysa s×n×f ve nesne
yap×s× ayr×nt×l× olarak ancak on ikinci bÞlãmde anlat×lmaktad×r. Bu nedenle konu
anlat×m×, s×n×f ve nesne kavramlar×n× da belirli bir seviyede anlatarak gerÑekleĢecek-
tir. BÞylece bu bÞlãmã bitirdiğimizde sadece dizi konusunu değil, ayn× zamanda
s×n×f ve nesne yap×s×n× da k×smen anlam×Ģ olacaks×n×z.
BÞlãm 9řda, ayn× iĢlemleri gerÑekleĢtirmek iÑin bu iĢlem komutlar×n× bir metot
iÑine yaz×p, gerektiğinde bu metodu dilediğimizce Ñağ×rman×n yolunu Þğreneceğiz.
BÞlãm 10řda, program×m×z×n sonuÑlar×n×n ekrana değil de bir dosyaya ne Ģekilde
yaz×labileceğini, bir dosyaya yaz×lm×Ģ olan bilgilerin de nas×l okunacağ×n gÞreceğiz.
BÞlãm 11řde, karakterlerin daha kapsaml× hali olarak da değerlendirebileceğimiz
kelime, cãmle ya da yaz×lar×n bilgisayarda ne Ģekilde iĢlenebileceğini gÞreceğiz.
BÞlãm 12řde, Java dilinin geliĢmiĢ yap×s× olan s×n×f ve nesne kavramlar×n× Þğrene-
ceğiz. S×n×f konusunda kapsaml× bilgiler vermek bu kitab×n amaÑlar×ndan değildir,
yine de bu konuda en az×ndan bir altyap× ortaya koymadan bir Java kitab×n× sonlan-
d×rmak, herhalde bu bãyãk dile karĢ× bir haks×zl×k olurdu.