1.1. KONULARIN ANLATIMI
17
1.2. UYARILAR VE AÇIKLAMALAR
17
1.2.2. Kitabın Yazılış Şekli
18
1.3. JAVA PROGRAMLAMA DİLİ
18
1.3.2. Dünyada "Java Programlama Dili" Kullanımı
19
1.4. JAVA PROGRAMLARINDA KULLANILAN NİCELİKLER
20
1.4.1. Anahtar Kelimeler
21
1.4.2. Belirleyiciler (İsimler)
21
1.4.4. Karakter Dizisi Olan Sabitler
23
1.5. İSİM VERME KURALLARI
24
1.6. PROGRAM YAZMA ŞEKİLLERİ
24
1.7. JAVA DERLESYİCİSİNİ KURMA
25
1.8. PROGRAMLARI DERLEME VE ÇALIŞTIRMA
25
1.8.1. Program Yazma Ortamı
25
1.8.1.1. Java SE Development Kit 10’u Kurma
25
1.8.1.2. Eclipse’yi İndirme ve Kurma
27
1.8.2. Proje Oluşturma
32
1.8.3. Paket (package) Oluşturma
34
1.8.4. Sınıf (class) Oluşturma
35
1.8.5. YeniSinif İsimli Programa (Sınıfa) main() Metodunu Ekleme
39
2. JAVA PROGRAMLAMA DİLİ
43
2.1. JAVA PROGRAMLAMA DİLİ’NİN ÖZELLİKLERİ
43
2.2. JAVA PROGRAMLAMA DİLİ’NİN YAPISI
44
2.2.1. Java Programlama Dili’nin Yapısı
44
2.2.2. System ve Scanner Sınıfları
48
2.3. SINIFIN YEREL DEĞİŞKENLERİ ve SABİTLERİ
48
2.4. SINIFIN ALAN DEĞİŞKENLERİ VE SABİTLERİ
52
2.5. SINIFIN METOTLARI
53
BASİT VERİ TİPLERİ VE İŞLEMCİLER
3. BASİT VERİ TİPLERİ VE İŞLEMCİLER
57
3.1.1. Tam Sayı Veri Tipleri
57
3.1.2. Ondalık Sayı Veri Tipleri
58
3.1.3. Ondalık Sayılarda Duyarlık Problemi
60
3.1.4. Karakter Veri Tipi ve Tam Sayılar
61
3.1.5. Character Sınıfı
66
3.1.7. String ve ’+’ İşlemcisi
70
3.1.8. Stringleri Karşılaştırma
70
3.1.9. Stringleri Ülkelere Göre Sıralama
73
3.1.10. boolean Veri Tipi
74
3.2. ARİTMETİK İŞLEMCİLER
75
3.2.1. Bölme İşlemcisi Ve Tam Sayı Bölme işlemcisi
75
3.2.2. Kalanlı Böle İşlemcisi
77
3.2.3. Aritmetik Atama İşlemcileri ve Kısaltmalar
77
3.2.4. Artırma İşlemcisi
78
3.2.5. Eksiltme İşlemcisi
79
3.2.6. Ön Ek ve Son Ek Gösterimi
79
3.2.7. Aritmetik İşlemlerde Tam Sayıların Kullanılması
80
3.2.8. Sayısal İşlemlerde Sınır Kavramı
81
3.2.9. Veri Tiplerinin Büyüklük Sınırlarını Öğrenme
82
3.2.10. Formüllerin Kodlanmasına Örnekler
83
3.2.11. Aritmetik İşlemlerde Uyulması Gereken Kurallar
84
3.3. KARŞILAŞTIRMA İŞLEMCİLERİ
84
3.4. MANTIK İŞLEMCİLERİ
84
3.4.1. Mantık İşlemcileri
84
3.4.2. Kısa Devre Mantık İşlemcileri
87
3.5.1. Bitwise NOT İşlemcisi : ~
90
3.5.2. Bitwase & (AND), ¦ (OR) ve ^ (XOR) İşlemcileri
90
3.6. VERİ TİPİ DÖNÜŞÜMÜ
91
3.6.1. Derleyicinin Kendiliğinden Yaptığı Veri Tipi Dönüşümleri
91
3.6.2. Veri Tipi Atamaları
93
3.6.3. Veri Tipi Dönüşümleri Sırasında Karşılaşılan Güçlükler
95
EKRANA YAZDIRMA VE EKRANDAN OKUTMA
4. EKRANA YAZDIRMA VE EKRANDAN OKUTMA
97
4.2. DİYALOG KUTUSUNA YAZDIRMA
97
4.4. DİYALOG KUTUSUNDAN OKUTMA
102
4.5. SAYILARI STRING’E DÖNÜŞTÜRME
105
4.6. FORMATLI YAZDIRMA ve String SINIFI
106
4.6.1. Tam Sayıları Nokta Kullanarak Yazdırma
106
4.6.2. Ondalık Sayıları Formatlı Yazdırma
107
4.6.3. Birden Çok Parametre Olması Durumu
109
4.6.6. Haftanın Günü, Ay ve Gün
111
4.6.7. String Sınıfının format() Metodunun Parametre Olarak Kullanılması
111
4.6.8. Ekrana Formatlı Yazdırmak İçin printf() Metodunu Kullanma
112
SEÇME VE TEKRARLAMA İFADELERİ
5. SEÇME VE TEKRARLAMA İFADELERİ
115
5.1.1. Basit if İfadesi
115
5.1.2. if … else İfadesi
117
5.1.3. if else if İfadesi
118
5.1.5. switch İfadesi
120
5.1.6. if ve switch İfadesi Arasında Tercih
122
5.2. TEKRARLAMA (DÖNGÜ) İFADELERİ
123
5.2.1. do…while Döngüsü
123
5.2.4. Farklı for Döngüleri
127
5.2.5. Metotların Kendi Kendilerini Çağırmaları
130
5.3. İÇ İÇE ŞEÇME VE / VEYA TEKRARLAMA YAPILARI
132
5.3.1. Çarpım Tablosu
132
5.3.2. Takvim Hazırlama
133
5.4. break ve continue KONTROL DEYİMLERİ
135
BASİT OLMAYAN VERİ TİPLERİ – 1: SINIF
6.1.1. Sınıf Gerçekten Gerekli mi?
138
6.1.2. Basit Bir Sınıf Tanımı
139
6.1.3. Sınıfın Alan Değişkenlerine Doğrudan Değer Atama
140
6.1.4. Sınıfın Alan Değişkenlerine Sınıfın Metodunu Kullanarak Değer Atama
140
6.1.5. Birden Çok Sınıf
141
6.2. SINIFIN METOTLARI
143
6.2.1. Metotlara Değer Gönderme
143
6.2.2. Metotlardan Değer Döndürme
144
6.2.3. Referans Veri Tipleri
146
6.3. SINIFIN NESNELERİ
150
6.3.2. Değişik Referans Örnekleri
152
6.3.3. Hazır Sınıfların Nesneleri ve import Belirticisi
153
6.3.4. Kurucu Metotlar
155
6.3.5. Yok Edici Metot
157
6.3.6. Nesneleri Kopyalama
161
6.3.7. Nesnelerin Eşitliği
162
6.3.8. Nesnelerin Alan Değişkenlerini Karşılaştırma: instanceof
163
6.4. this REFERANS BELİRTİCİSİ
163
6.5. static BİLDİRİCİSİ
166
6.5.1. static Değişkenler ve Metotlar
166
6.5.2. static Sabit Tanımı
169
6.6. SINIF VERİ TİPİNİN ÖZELLİKLERİ
170
6.8. METOTLARIN AŞIRI YÜKLENMELERİ
171
6.9.2. Nesnelerin Alan Değişkenlerine Kurucu Metotları Kullanarak Değer Atama
178
6.9.3. Nesnelerin Alan Değişkenlerine Değerlerini Diğer Metotlarla Gönderme
179
6.9.4. Metotların Kalıtım Yoluyla Geçmesi
180
6.9.5. Alan Değişkenlerinin Kalıtım Yoluyla Geçmesi
181
6.9.6. protected Belirticisi ve Kalıtım
182
6.9.7. Kurucu Metotların Kalıtım Yoluyla Geçmesi
183
6.11. SOYUT (abstract) SINIFLAR
190
6.11.1. Soyut Sınıf Kavramı
190
6.11.2. Soyut Sınıf ve Soyut Metot Örneği
194
6.12.1. Tekli Kalıtım Örneği
197
6.12.2. İkili Kalıtım Örneği
199
BASİT OLMAYAN VERİ TİPLERİ – 2: DİZİ VE NUMARALAMA
7. DİZİ VE NUMARALAMA VERİ TİPLERİ
201
7.1.2. Diziye Bellekte Yer Ayırma
202
7.1.3. Dizinin Elemanlarına İndis Kullanarak Ulaşma
203
7.1.4. Diziye İlk Değerlerin Atanması
203
7.1.5. Dizi Veri Tipinin Elemanları
206
7.1.6. Diziyi Metoda Parametre Olarak Gönderme
207
7.1.7. Metottan Dizi Döndürme
209
7.1.8. Dizileri Karşılaştırma
211
7.1.9. İki–Boyutlu Dizi : Matris Çarpımı
213
7.1.10. İki–Boyutlu Dizi: Özel Hal
214
7.1.11. Ham Puanı Harfe (Nota) Çevirme
215
7.1.12. Bir Nesneyi Diziye Atama
217
7.1.13. Vector SINIFI
218
7.2. ArrayList SINIFI
218
Diziden/listeden eleman döndürme
221
7.3. NUMARALAMA VERİ TİPİ
221
7.3.1. Eski Tip enum Tanımı
221
7.3.2. Yeni Tip Enum Tanımı
222
7.3.3. Sınıf ve enum Veri Tipi
223
DOSYA VE DOSYALAMA İŞLEMLERİ
8.2. DOSYAYA VERİ GİRİŞ–ÇIKIŞI
226
8.2.1. Bilgisayarın Dosya Tercihi
226
8.2.2. Metin Dosyasına Yazdırma
226
8.2.3. İkili (binary) Dosyaya Yazdırma
226
8.3.2. Ana Dizini Öğrenme
229
8.3.3. Sürücüleri Öğrenme
229
8.4. METİN DOSYASINA YAZDIRMA VE METİN DOSYASINDAN OKUTMA
231
8.4.1. PrintWriter Sınıfının output Nesnesini Oluşturma ve Dosyaya Yazdırma
232
8.2.2. Scanner Sınıfının input Nesnesini Oluşturma ve Dosyadan Okutma
236
Özel bir dosyadan değerleri tarayan tarayıcıyı oluşturur
236
8.5. İKİLİ GİRİŞ/ÇIKIŞ İŞLEMLERİNDE KULLANILAN SINIFLAR
239
8.5.3. FileInputStream
240
8.5.5. FileOutputStream
241
8.5.6. DataInputStream
243
8.5.7. DataInput Arayüzünün Metotları
243
8.5.8. DataOutputStream
243
8.5.9. DataOutput Arayüzünün Metotları
244
8.6. ObjectInputStream ve ObjectOutputStream SINIFLARI
249
8.7. RASTGELE ULAŞILABİLEN DOSYALAR
251
8.8. SERIALIZABLE ARAYÜZÜ
255
8.8.1. Bir Tek Sınıfın Nesnesini Dosyaya Yazdırma ve Dosyadan Okutma
255
8.8.2. Bir Nesneyi O Nesnenin Bileşenleri Olan Nesnelerle Birlikte Dosyaya Yazdırma ve Dosyadan Okutma
256
8.8.3. Peş Peşe Sınıfların Nesnelerini Dosyaya Yazdırma ve Dosyadan Okutma
259
8.8.3.1. Ayrı–Ayrı Yazdırma ve Okutma
259
8.8.3.2. İki Nesneyi Birlikte Yazdırma
261
8.8.3.3. İki Nesneyi Dosyadan Birlikte Okutma
262
8.8.4. Serializable Olmayan Nesneyi Dosyaya Yazdırma
264
8.8.5. İç İçe Sınıfların Nesnelerini Dosyaya Yazdırma ve Dosyadan Okutma
266
9.1. JENERİK SINIF GEREKLİ Mİ?
269
9.2. JENERİK SINIF TANIMI
270
9.2.1. Jenerik Cember Sınıfı Tanımı
270
9.2.2. Jenerik Cember Sınıfının Kullanılması
271
9.2.4. Jenerik Yığın Sınıfı Tanımı
273
9.2.5. Jenerik Yığın Sınıfı Tanımının String ve Integer İçin Kullanılışı
274
9.3.2 Jenerik Alt Sınıf
276
9.3.3. Metot Tanımında Ham Tip Kullanma
278
9.3.4. Metot Tanımında Jenerik Tip Kullanma
279
9.4. ÖRNEK PROGRAMLAR
283
10.2. Collection ARAYÜZÜ, AbstractCollection SINIFI ve Collections SINIFI
291
10.2.1.Collection Arayüzü
291
10.2.2. AbstractCollection Sınıfı
293
10.2.3. Collections Sınıfı
293
10.3. Iterator ARAYÜZÜ
295
10.5.1. MyList Arayüzü
297
10.5.2. Vector Sınıfı
303
10.6.1. Queue (Kuyruk) Arayüzü
306
10.6.3. Priority Queue (Öncelik Kuyruğu) Sınıfı
308
GRAFİK KULLANICI ARAYÜZÜ (GUI)
11. GRAFİK KULLANICI ARAYÜZÜ (GUI)
313
11.1.1. GUI Bileşenleri
313
11.1.2. Swing Bileşenleri
314
11.2. JFrame / TAŞIYICILAR = ÇERÇEVELER
316
11.2.1. JFrama Sınıfı
317
11.2.2. Çerçeve Oluşturma
317
11.2.3. Çerçeveye Eleman Ekleme
318
11.3. ALT TAŞIYICILAR
319
11.3.2. JEditorPane ve JTextPane
321
11.4. YERLEŞME DÜZENLEYİCİLERİ: Layout Managers
334
11.4.1. FlowLayout Yerleşme Düzenleyicisi
335
11.4.2. BoxLayout Yerleşme Düzenleyicisi
337
11.4.3. GridLayout Yerleşme Düzenleyicisi
338
11.4.4. GridBagLayout Yerleşme Düzenleyicisi
339
11.4.5. BorderLayout Yerleşme Düzenleyicisi
341
11.5. Color (renk) SINIFI
343
11.7. ImageIcon SINIFI
345
12.1.1. Java Koordinat Sistemi
349
12.1.2. Java Bileşenlerinin Koordinat Sistemleri
350
12.1.3. Çerçeve ve Düğme Oluşturma
350
12.2. Graphics SINIFI
351
12.2.1. Graphics Sınıfının Metotları
351
12.2.2. JLabel Sınıfı
352
12.2.3. paintComponent() Metodu
354
12.2.4. Panelin Üzerine Grafik Çizdirme
356
12.2.5. Çizgi Şekli, Çizginin Uçları ve Çizgilerin Birleşme Yeri
357
12.2.6. Bir Fonksiyonun Grafiğini Çizdirme
360
12.2.7. Çan Eğrisinin Grafiği
364
12.2.8. İkinci Dereceden Bir Polinomun Grafiği
366
12.3. FigurePanel SINIFI
368
13. OLAY VE DİNLEYİCİ
379
13.1.1. Olayın Tanımı
379
13.1.2. Olay Sınıfları
379
13.2. DİNLEYİCİ (Listener)
381
13.2.1. Dinleyici Kavramı
381
13.2.2. Basit Örnekler
383
13.3.1 Fare (mouse) Olayları
392
13.3.1.1. Fare Olaylarını Yöneten Sınıflar ve Arayüzler
392
13.3.1.2. Fereyi Kullanarak Panel Üzerinden Mesaj Gönderme
393
13.3.1.3. Fereyi Panelin Üzerinde Tıklatma
394
13.3.1.4. Fereyi Panelin Üzerinde Sürükleme
395
13.3.2. Tuş (key) Olayları
400
13.3.4. StillClock Sınıfı
405
13.3.5. MessagePanel Sınıfı
408
13.3.6. Olay ve Dinleyici
410
13.3.8. Trafik Işıkları
414
14. SWING BİLEŞENLERİ (Kontrol Yapıları)
419
14.2. SEÇME SINIFLARI
419
14.2.1. JButton / Düğme
419
14.2.2. JCheckBox / Onay Kutusu
424
14.2.3 JRadioButton / Seçme Halkaları
431
14.2.4. JComboBox / Çoktan Seçme
440
14.2.5. Onay Kutusu, Seçme Halkaları, Etiket ve Metin Alanı
447
14.3. JLabel / ETİKET
451
14.4.3. JPasswordField
463
14.4.4. JFormattedTextField
467
14.6. JScrollBar / TARAYICI
480
14.7. JSlider / SÜRÜKLEYİCİ
484
14.8.1. Menü Çubuğu ve Alt–Menü Başlıklarını Oluşturma
491
14.8.2. Alt–Menü Bileşenlerini Oluşturma
493
14.8.3. Gerçekleştirecek İşlemleri Seçme
496
14.8.4. Yapılacak İşlemler İçin Olay–Dinleyici İlişkisini Kurma
500
14.8.6. Alt–Menü İçinde Onay Kutuları
509
14.8.7. Alt–Alt–Menü İçinde Onay Kutuları
512
14.8.6. Alt–Alt–Menü İçinde Seçme Halkaları
514
14.8.7. (Image Icons), (Keyboard Mnemonics), and (Keyboard Accelerators)
520
14.8.9. Popup Menü Bileşenlerine Ikon Ekleme
526
E.1. Math SINIFININ METOTLARI
529
E.1.1. Matematik Sınıfının Metotlarını Kullanma
529
E.1.2. Trigonometrik Metotları Kullanma
531
E.1.3. Yuvarlayıcı Metotları Kullanma
533
E.1.4. min, max ve abs Metotlarını Kullanma
535
E.1.5. Random Metotlarını Kullanma (1)
536
E.1.6. Random Metotlarını Kullanma (2)
537
E.2. İŞLEMCİLERİN ÖNCELİK SIRALARI
539