İÇİNDEKİLER
İçindekiler
Önsöz 5
1. BÖLÜM:
GİRİŞ
1. GİRİŞ 17
1.1. KONULARIN ANLATIMI 17
1.2. UYARILAR VE AÇIKLAMALAR 17
1.2.1. Uyarılar 17
1.2.2. Kitabın Yazılış Şekli 18
1.3. JAVA PROGRAMLAMA DİLİ 18
1.3.1. Tarihçe 18
1.3.2. Dünyada "Java Programlama Dili" Kullanımı 19
1.3.3. Derleyici 20
1.3.4. Donanım 20
1.4. JAVA PROGRAMLARINDA KULLANILAN NİCELİKLER 20
1.4.1. Anahtar Kelimeler 21
1.4.2. Belirleyiciler (İsimler) 21
1.4.3. Sabitler 21
1.4.4. Karakter Dizisi Olan Sabitler 23
1.4.5. İşlemciler 23
1.4.6. Ayırıcılar 23
1.4.7. Açıklamalar 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. BÖLÜM:
JAVA PROGRAMLAMA DİLİ
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
3. BÖLÜM:
BASİT VERİ TİPLERİ VE İŞLEMCİLER
3. BASİT VERİ TİPLERİ VE İŞLEMCİLER 57
3.1. VERİ TİPLERİ 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.6. String Sınıfı 67
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. BİT İŞLEMCİLERİ 90
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
4. BÖLÜM:
EKRANA YAZDIRMA VE EKRANDAN OKUTMA
4. EKRANA YAZDIRMA VE EKRANDAN OKUTMA 97
4.1. EKRANA YAZDIRMA 97
4.2. DİYALOG KUTUSUNA YAZDIRMA 97
4.3. EKRANDAN OKUTMA 98
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.4. Tarih ve Saat 110
4.6.5. Saat 110
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
4.7. Calendar SINIFI 112
5. BÖLÜM:
SEÇME VE TEKRARLAMA İFADELERİ
5. SEÇME VE TEKRARLAMA İFADELERİ 115
5.1. SEÇME İ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.4. Şartlı İfade 119
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
4.2.2. while Döngüsü 124
5.2.3. for Döngüsü 124
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
6. BÖLÜM:
BASİT OLMAYAN VERİ TİPLERİ – 1: SINIF
6. SINIF 137
6.1. SINIF 138
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.1. Nesne Tanımı 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.5.3. static import 169
6.6. SINIF VERİ TİPİNİN ÖZELLİKLERİ 170
6.7. VERİYİ GİZLEME 170
6.8. METOTLARIN AŞIRI YÜKLENMELERİ 171
6.9. KALITIM 173
6.9.1 Model Sınıflar 174
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.10. ÇOK ŞEKİLLİLİK 185
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. ARAYÜZ 196
6.12.1. Tekli Kalıtım Örneği 197
6.12.2. İkili Kalıtım Örneği 199
7. BÖLÜM:
BASİT OLMAYAN VERİ TİPLERİ – 2: DİZİ VE NUMARALAMA
7. DİZİ VE NUMARALAMA VERİ TİPLERİ 201
7.1. DİZİ VERİ TİPİ 201
7.1.1. Dizi Tanımı 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
ArrayList 221
açıklama 221
ArrayList liste = 221
new ArrayList(); 221
liste.get(indis); 221
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
8. BÖLÜM:
DOSYA VE DOSYALAMA İŞLEMLERİ
8. DOSYA 225
8.1. GİRİŞ 225
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. File SINIFI 226
8.3.1. Giriş 226
8.3.2. Ana Dizini Öğrenme 229
8.3.3. Sürücüleri Öğrenme 229
8.3.4. Dosya Listesi 230
8.5.5. Filitreleme 231
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
açıklama 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.1. InputStream 239
8.5.2. OutputStrem 240
8.5.3. FileInputStream 240
8.5.4.Dosya Kontrolü 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. BÖLÜM:
JENERİK SINIF
9. JENERİK SINIF 269
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. JENERİK METOT 275
9.3.1. Jenerik Metot 275
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.3.5. WildCard 280
9.4. ÖRNEK PROGRAMLAR 283
10. BÖLÜM:
VERİ DEPOLAMA
10. VERİ DEPOLAMA 291
10.1. GİRİŞ 291
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.4. Set ARAYÜZÜ 295
10.5. List Arayüzü 297
10.5.1. MyList Arayüzü 297
10.5.2. Vector Sınıfı 303
10.5.3. Stack Sınıfı 304
10.6. Queue ARAYÜZÜ 306
10.6.1. Queue (Kuyruk) Arayüzü 306
10.6.2. Queue Sınıfı 308
10.6.3. Priority Queue (Öncelik Kuyruğu) Sınıfı 308
10.7. Map ARAYÜZÜ 310
11. BÖLÜM:
GRAFİK KULLANICI ARAYÜZÜ (GUI)
11. GRAFİK KULLANICI ARAYÜZÜ (GUI) 313
11.1. GİRİŞ 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.1. JPanel 319
11.3.2. JEditorPane ve JTextPane 321
11.3.3. JScrollPane 322
11.3.4. JTabbedPane 325
11.3.5. JSplitPane 329
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.6. Font SINIFI 344
11.7. ImageIcon SINIFI 345
12. BÖLÜM:
GRAFİK ÇİZME
12. GRAFİK ÇİZME 349
12.1. GRAFİK 349
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
12.4. Canvas SINIFI 371
12.5. ARK ÇİZDİRME 373
12.6. Polygon SINIFI 375
13. BÖLÜM:
OLAY VE DİNLEYİCİ
13. OLAY VE DİNLEYİCİ 379
13.1. OLAY (Event) 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. ÖRNEKLER 392
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.3. Timer Sınıfı 401
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.7. Aç – Kapa 412
13.3.8. Trafik Işıkları 414
14. BÖLÜM:
SWING BİLEŞENLERİ
14. SWING BİLEŞENLERİ (Kontrol Yapıları) 419
14.1. GİRİŞ 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. METİN ALANI 454
14.4.1. JTextField 454
14.4.2. JTextArea 458
14.4.3. JPasswordField 463
14.4.4. JFormattedTextField 467
14.4.5. JSpinner 470
14.4.6. TextField 471
14.5. JList / LİSTE 473
14.6. JScrollBar / TARAYICI 480
14.7. JSlider / SÜRÜKLEYİCİ 484
14.8. MENÜ HAZIRLAMA 491
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.5. Kısa Menüler 505
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.8. Popup Menü 521
14.8.9. Popup Menü Bileşenlerine Ikon Ekleme 526
15. BÖLÜM:
EKLER
15. EKLER 529
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
E.3. KISALTMALAR 540
16. BÖLÜM: KAYNAKLAR 543
KAVRAMLAR DİZİNİ 544 |