|
|
"Java ve
Altuğ B. Altıntaş Papatya Yayınevi |
| "Java ve Yazılım Tasarımı" kitabının ilk baskısı, mayıs 2003, ikinci baskısı ekim 2005 tarihinde
yapılmıştır. Satın almayı düşünüyorsanız |
| Bölüm-1 | Bölüm-2 | Bölüm-3 | Bölüm-4 | Bölüm-5 |
| Bölüm-6 | Bölüm-7 | Bölüm-8 | Bölüm-9 | Bölüm-10 |
| Bölüm-11 | Bölüm-12 | Bölüm-13 | Bölüm-14 | - |
1.1. Java ile Ne
Yapılabilir? 18
1.2. Java Nasıl Çalışır? 18
1.3. Java Sınıflaması 20
1.3.1. Standart Java 20
1.3.2. Komple Java 21
1.3.3. Gömülü Cihazlar İçin
Java 21
1.3.4. XML Teknolojileri 22
1.3.5. Diğer Teknolojiler 22
1.4. Java’nın Gelişim Evreleri 23
1.5. Java’nın Başarılı Olmasındaki Anahtar Sözcükler 23
1.6. Çöp Toplayıcı 24
1.7. Java’da Açıklama Satırı 24
1.8. Herşey Nesne 24
1.9. Sınıf Nedir? Nesne Nedir? 26
1.10. Depolanan Veriler Nerede Durmaktadır? 27
1.11. Temel Tipler 27
1.12. Geçerlilik Alanı 28
1.13. Nesnelerin Geçerlilik Alanları 29
1.14. Yeni Sınıf Oluşturma 29
1.15. Alanlar ve Yordamlar 30
1.16. İlk Java Programımız 35
1.17. Java Kurulumu,
Derleme ve Çalıştırma 36
1.17.1. Java’nın Unix/Linux
İşletim Sistemlerinde Kurulumu 37
1.17.2. Java’nın Windows
İşletim Sisteminde Kurulumu 38
1.17.3. Java Kodlarını
Derleme ve Çalıştırma 39
1.18. args[
] Nedir? Ne İşe Yarar? 39
1.19. Javadoc = Yorum İle Dokümantasyon Oluşturmak 41
1.19.1. Söz Dizimi Kuralları 41
1.19.2. Gömülü HTML 41
1.19.3. Doc Tag 42
1.19.3.1. Ortak Kullanılan
Yorum Ekleri 42
1.19.3.2. Sınıflara Ait JavaDoc
Etiketleri 43
1.19.3.3. Global
Değişkenlere Ait JavaDoc Etiketleri 43
1.19.3.4.
Yordamlara Ait JavaDoc
Etiketleri
43
1.19.4.
Dokümantasyon Örneği 44
1.20. Sınıf İsimleri ve Yordam İsimleri 45
1.21. Dosya İsimleri 45
1.22. Özet 46
1.23. Sorular 46
2.1. Atamalar 47
2.1.1. Temel Tiplerde Atama 47
2.1.2. Nesneler ve Atamalar 48
2.2. Yordamların Çağrılması 50
2.3. Java Operatörleri 52
2.3.1. Aritmetik Operatörler 53
2.3.1.1. Dönüştürme İşlemi 55
2.3.1.2. Bir Artırma ve Azaltma 56
2.3.2. İlişkisel Operatörler 57
2.3.3. Mantıksal Operatörler 59
2.3.4. Bit Düzeyinde Operatörler 60
- VE İşlemi/Operatörü 61
- VEYA İşlemi/Operatörü 61
- YA DA İşlemi/Operatörü 62
- TÜMLEME İşlemi/Operatörü 62
- Öteleme Operatörleri 63
2.3.5. Atama Operatörleri 64
2.3.6. String Operatörü 66
2.3.7. Nesnelerin Karşılaştırılması 66
2.4. Kontrol
Deyimleri/İfadeler 68
2.4.1. Döngü Deyimleri 68
- while Döngü Deyimi 68
- do-while Döngü Deyimi 69
- for Döngü Deyimi 70
2.4.2. Karşılaştırma Deyimleri 72
- if-else Deyimi 72
- switch Deyimi 75
2.4.3. Dallandırma Deyimleri 77
- break Deyimi 77
- continue Deyimi 79
- return Deyimi 80
2.5. Özet 81
2.6. Sorular 81
Bölüm 3. NESNELERİN BAŞLANGIÇ DURUMU VE TEMİZLİK 83
3.1. Başlangıç Durumuna
Getirme İşlemi ve Yapılandırıcılar 83
3.1.1. Bir İsmin Birden Çok Yordam İçin Kullanılması-Adaş Yordamlar 85
- Adaş Yordamlar Nasıl Ayırt Edilir? 86
- Dönüş Değerlerine Göre Adaş Yordamlar Ayırt Edilebilir mi? 87
3.1.2. Varsayılan Yapılandırıcılar 88
- Büyünün Bozulması 88
3.1.3. this Anahtar Sözcüğü 89
- Yordam Çağrımlarımda this Kullanımı 91
- Bir Yapılandırıcıdan Diğer Bir Yapılandırıcıyı Çağırmak 92
3.1.4. Statik Alanlar 93
3.1.5. Statik Yordamlar 94
3.1.6. Bir Yordamın Statik mi Yoksa Nesne Yordamı mı Olacağı
Neye Göre Karar Verilecek? 95
3.2. Temizlik İşlemleri: finalize() ve Çöp Toplayıcı 97
3.2.1. finalize() Yordamı 97
3.2.2. Bellekten Hangi Nesneler Silinir? 100
3.2.3. finalize() Yordamına Güvenilirse Neler Olur? 102
3.2.4. Çöp Toplayıcısı Nasıl Çalışır? 103
- Eski Yöntem 103
- Yeni Yöntemler 104
3.2.5. Heap Bölgesi 104
3.2.6. Yeni Nesil 105
3.2.7. Eski Nesil 105
3.2.8. Heap Bölgesi Boyutları
Nasıl Denetlenir? 105
3.2.9. Kopyalama Yönteminin Gösterimi 107
3.2.10. İşaretle ve Süpür Yönteminin Gösterimi 108
3.2.11. İlk Değerlerin Atanması 109
3.2.12. Yerel Değişkenler 110
3.2.13. Nesnelere Ait Global Alanlar 110
3.2.13.1. Nesnelere Ait Global Alanların Temel Bir Tip Olması Durumunda
110
3.2.13.2. Nesnelere Ait Global Alanların Sınıf Tipi Olması Durumunda 111
3.2.14. Sınıflara Ait Global Alanlar 112
3.2.14.1. Sınıflara Ait Global Alanların Temel Bir Tip Olması Durumunda
112
3.2.14.2. Sınıflara Ait Global Alanların Sınıf Tipi Olması Durumunda 113
3.2.15. İlk Değerler Atanırken Yordam Kullanımı 113
3.2.16. İlk Değer Alma Sırası 114
3.2.17. Statik ve Statik Olmayan Alanların Değer Alma Sırası 115
3.2.18. Statik Alanlara Toplu Değer Atama 117
3.2.19. Statik Olmayan Alanlara Toplu Değer Atama 117
3.3. Diziler 118
3.3.1. Dizi Türündeki Referanslar 118
3.3.2. Dizileri Oluşturmak 119
3.3.2.1. Temel Türlerden Oluşan Bir Dizi 119
3.3.2.2. Nesnelerden Oluşan Bir Dizi 120
3.3.3. Dizi Boyu/Uzunluğunun Değiştirilmesi 121
3.3.4. Dizi Elemanlarına Erişim 121
3.3.5. Dizi Elemanlarını Sıralama 123
3.3.6. Dizilerin Dizilere Kopyalanması 124
3.3.7. Çok Boyutlu Diziler 125
3.4. Özet 129
3.5. Sorular 130
4.1. Paket 131
4.2. Varsayılan Paket 132
4.3. Paket Oluşturma 134
4.4. Classpath Ayarları 135
4.4.1. Önemli Nokta 137
4.5. Çakışma 138
4.6. Paket İçerisindeki Tek
Başına Yürütülebilir Uygulamaları Çalıştırmak 139
4.7. JAR Dosyaları 141
4.7.1. JAR Dosyası İçersindeki Bir Uygulamayı Çalıştırmak 143
4.8. Erişim Belirleyiciler 143
4.8.1. friendly 143
4.8.1.1. Varsayılan Paketlerde Erişim 145
4.8.2. public 146
4.8.3. private 147
4.8.4. protected 148
4.9. Kapsüllenme 151
4.10. Genel Bir Bakış 152
4.11. Özet 154
4.12. Sorular 154
5.1. Komposizyon 155
5.2. Kalıtım 158
5.2.1 Gizli Kalıtım 161
5.2.2. Kalıtım ve Başlangıç Değeri Alma Sırası 163
5.2.3. Parametre Alan Yapılandırıcılar ve Kalıtım 164
5.3. Komposizyon mu? Kalıtım
mı? 166
5.4. İptal Etmek 168
5.4.1. Sanki İptal Ettim Ama... 171
5.4.2. İptal Etmek ve Adaş Yordamların Birbiriyle Karıştırılması 173
5.5. Yukarı Çevrim 174
5.6. Final Özelliği 175
5.6.1. Global Alanlar ve Final Özelliği 175
5.6.2. Final Parametreler 177
5.6.3. Boş Final 177
5.6.4. Final Yordamlar 178
5.6.5. Private ve Final 179
5.6.6. Final Sınıflar 179
5.7. Kalıtım ve İlk Değer
Alma Sırası 180
5.8. Özet 181
5.9. Sorular 182
6.1. Ayrıntılar 183
6.2. Geç Bağlama 185
6.3. Final Deyimi ve Geç Bağlama 188
6.4. Neden Polimorfizm? 189
6.5. Genişletilebilirlik 192
6.6. Soyut Sınıflar ve Yordamlar 195
6.6.1. Niye Soyut Sınıf ve Yordamlara İhtiyaç Duyulur? 197
6.7. Yapılandırıcılar
İçersindeki İlginç Durumlar 199
6.8. Kalıtım ve Yukarı
Çevrim 201
6.9. Aşağıya Çevrim 203
6.10. Özet 207
6.11. Sorular 207
7.1. Arayüz 209
7.1.1. Birleştiricilik 209
7.1.2. Arayüz ve Soyut Sınıflar 212
7.1.3. Arayüz İle Çoklu Kalıtım 214
7.1.4. Arayüzlerin Kalıtım Yoluyla Genişletilmesi 217
7.1.5. Çakışmalar 219
7.1.6. Arayüzün İçerisinde Alan Tanımlama 220
7.6.1.1. Arayüzün İçerisinde Tanımlanmış Alanlara
Başlangıç Değerleri Verilmesi 221
7.1.7. Genel Bakış 222
7.1.8. Dahili Arayüzler 224
7.1.8.1. Sınıflarda Tanımlanan Dahili Arayüzler 225
7.2. Dahili Sınıflar 227
7.2.1. Dahili Üye Sınıflar 227
7.2.1.1. Dahili Üye Sınıflar ve Erişim 228
7.2.1.2. Dahili Üye Sınıflar ve Bunları Çevreleyen Sınıflar Arasındaki
İlişki 230
7.2.1.3. Statik Dahili Üye Sınıflar 232
7.2.1.4. Statik Dahili Üye Sınıflar ve Statik Yordamlar 235
7.2.1.5. Statik ve Final Alanlar 235
7.2.1.6. Dahili Üye Sınıflar ve Yapılandırıcılar 236
7.2.1.7. İç İçe Dahili Üye Sınıflar 237
7.2.1.8. Soyut Dahili Üye Sınıflar 237
7.2.1.9. Türetilebilen Dahili Üye Sınıflar 240
7.2.2. Yerel Sınıflar 241
7.2.3. İsimsiz Sınıflar 244
7.2.4. Fiziksel İfade 248
7.2.5. Neden Dahili Sınıflar? 249
7.3. Özet 251
7.4. Sorular 251
8.1. İstisnalara Giriş 253
8.1.1. İstisna Nasıl Oluşabilir? 254
8.1.2. Başka İstisnalar Neler Olabilir? 255
8.1.3. İstisna Yakalama Mekanizması 255
8.1.4. İstisna İfadeleri 257
8.1.5. İstisna Tip Hiyerarşisi 268
8.1.5.1. Diğer İstisna Tiplerini Yakalamak 269
8.1.5.2. RuntimeException
İstisna Tipleri 269
8.1.6. İstisna Mesajları 270
8.1.7. Kendi İstisnalarımızı Nasıl Oluşturabiliriz? 277
8.1.8. finally Bloğu 281
8.1.8.1. return ve finally Bloğu 285
8.1.8.2. Dikkat System.exit(); 286
8.1.9. İstisnanın Yeniden Fırlatılması 287
8.1.10. printStackTrace() ve Hata Mesajlarının Kısaltılması 290
8.1.11. İlginç Gelişme 292
8.1.12. İptal Etme ve İstisnalar 294
8.1.13. İstisnaların Sıralanması 298
8.2. Özet 299
8.3. Sorular 300
9.1. Sekizli Irmakları 302
9.1.1. InputStream Sınıfı 302
9.1.1.1. FilterInputStream
Sınıfı 312
9.1.1.2. BufferedInputStream
Sınıfı 312
9.1.1.3. CheckedInputStream
Sınıfı 316
9.1.1.3.1. Checksum Arayüzü 317
9.1.1.3.2. CRC 317
9.1.1.3.3. CRC32 Sınıfı 317
9.1.1.3.4. Adler32 Sınıfı 318
9.1.1.4. DataInputStream
Sınıfı 319
9.1.1.5. PushbackInputStream
Sınıfı 321
9.1.1.6. Standart Okuma 323
9.1.2. OutputStream 324
9.1.2.1. FilterOutputStream
Sınıfı 329
9.1.2.1.1. BufferedOutputStream
Sınıfı 329
9.1.2.1.2. CheckedOutputStream
Sınıfı 332
9.1.2.1.3. DataInputStream ve
DataOutputStream Sınıfları 333
9.1.2.1.4. Printstream Sınıfı 334
9.1.3. Önemli Noktalar 336
9.2. Karakter Irmakları 337
9.2.1. Reader 338
9.2.1.1. InputStreamReader
Sınıfı 340
9.2.1.1.1. FileReader Sınıfı 340
9.2.1.2. BufferedReader
Sınıfı 344
9.2.1.2.1. BufferedReader İle
Standart Okuma 347
9.2.1.3. PushbackReader
Sınıfı 348
9.2.2. Writer 350
9.2.2.1. OutputStreamWriter
ve FileWriter Sınıfı 352
9.2.2.2. PrinterWriter Sınıfı 356
9.2.2.3. BufferedWriter
Sınıfı 358
9.2.2.4. StringWriter Sınıfı 359
9.3. Başarım (Performans) 360
9.4. Unicode 368
9.5. File Sınıfı 373
9.5.1. Geçici Dosyalar 373
9.5.2. Listeleme 375
9.6. Rasgele Erişimli
Dosyalar 377
9.7. Dönüşüm 378
9.7.1. Externalizable 389
9.8. Sıkıştırma 393
9.9. Bölümleyiciler 400
9.9.1. StreamTokenizer Sınıfı 401
9.9.2. StringTokenizer Sınıfı 403
9.10. Özet 405
9.11. Sorular 406
10.1. Tamponlar 408
10.1.1. hasRemaining(), flip(), get() Yordamları 411
10.1.2. Bağıl ve Mutlak Operasyonlar 413
10.1.2.1. Bağıl Operasyonlar 413
10.1.2.2. Mutlak Operasyonlar 415
10.1.3. Sarmalama 416
10.1.4. Doğrusal ve Doğrusal Olmayan Tamponlar 417
10.1.5. compact() Yordamı 420
10.1.6. duplicate() 422
10.1.7. slice() Yordamı 424
10.1.8.