İÇİNDEKİLER
Önsöz 5 1. BÖLÜM GİRİŞ 1. GİRİŞ 15 1.1. KONULARIN ANLATIMI 15 1.2. UYARILAR VE AÇIKLAMALAR 15 1.2.1. Uyarılar 15 1.2.2. Kitabın Yazılış Şekli 16 1.3. JAVA PROGRAMLAMA DİLİ 16 1.3.1. Tarihçe 16 1.3.2. Dünyada "Java Programlama Dili" Kullanımı 17 1.3.3. Derleyici 18 1.3.4. Donanım 18 1.4. JAVA PROGRAMLARINDA KULLANILAN NİCELİKLER 18 1.4.1. Anahtar Kelimeler 19 1.4.2. Belirleyiciler (İsimler) 19 1.4.3. Sabitler 19 1.4.4. Karakter Dizisi Sabitler 20 1.4.5. İşlemciler 21 1.4.6. Ayırıcılar 21 1.4.7. Açıklamalar 21 1.5. İSİM VERME KURALLARI 21 1.6. PROGRAM YAZMA ŞEKİLLERİ 22 1.7. JAVA’YI KURMA 22 1.8. PROGRAMLARI DERLEME VE ÇALIŞTIRMA 22 1.8.1. Program Yazma Ortamı 22 1.8.2. Proje Oluşturma 25 1.8.3. Paket (package) Oluşturma 28 1.8.4. Sınıf (class) Oluşturma 28 1.8.5. ilkProg.java Programına main() Metodunu Ekleme 30 2. BÖLÜM JAVA PROGRAMLAMA DİLİ 2. JAVA PROGRAMLAMA DİLİ 33 2.1. JAVA PROGRAMLAMA DİLİ’NİN ÖZELLİKLERİ 33 2.2. JAVA PROGRAMLAMA DİLİ’NİN YAPISI 34 2.2.1. Java Programlama Dili’nin Yapısı 34 2.2.2. System Sınıfı 37 2.3. DEĞİŞKENLER ve SABİTLER 37 2.4. SINIFIN ALAN DEĞİŞKENLERİ VE SABİTLERİ 41 2.5. SINIFIN METOTLARI 42 3. BÖLÜM VERİ TİPLERİ VE İŞLEMCİLER 3. VERİ TİPLERİ VE İŞLEMCİLER 45 3.1. VERİ TİPLERİ 45 3.1.1. Tam Sayı Veri Tipleri 45 3.1.2. Ondalık Sayı Veri Tipleri 46 3.1.3. Ondalık Sayılarda Duyarlık Problemi 48 3.1.4. Karakter Veri Tipi ve Tam Sayılar 49 3.1.5. Character Sınıfı 53 3.1.6. String Sınıfı 55 3.1.7. String ve ’+’ İşlemcisi 58 3.1.8. Stringleri Karşılaştırma 58 3.1.9. Stringleri Ülkelere Göre Sıralama 61 3.1.10. boolean Veri Tipi 61 3.2. ARİTMETİK İŞLEMCİLER 63 3.2.1. Bölme İşlemcisi Ve Tam Sayı Bölme işlemcisi 63 3.2.2. Kalan İşlemcisi 64 3.2.3. Aritmetik Atama İşlemcileri ve Kısaltmalar 64 3.2.4. Artırma İşlemcisi 65 3.2.5. Ön Ek (prefix) ve Son Ek (postfix) Gösterimi 66 3.2.6. Eksiltme İşlemcisi 67 3.2.7. Aritmetik İşlemlerde Tam Sayıların Kullanılması 67 3.2.8. Sayısal İşlemlerde Sınır Kavramı 69 3.2.9. Veri Tiplerinin Büyüklük Sınırlarını Öğrenme 69 3.2.10. Formüllerin Kodlanmasına Örnekler 70 3.2.11. Aritmetik İşlemlerde Uyulması Gereken Kurallar 71 3.3. KARŞILAŞTIRMA İŞLEMCİLERİ 71 3.4. MANTIK İŞLEMCİLERİ 72 3.4.1. Mantık İşlemcileri 72 3.4.2. Kısa Devre Mantık İşlemcileri (&& ve || ) 75 3.5. BİT İŞLEMCİLERİ 77 3.5.1. Bitwise NOT İşlemcisi : ~ 77 3.5.2. Bitwase & (AND), | (OR) ve ^ (XOR) İşlemcileri 78 3.6. VERİ TİPİ DÖNÜŞÜMÜ 78 3.6.1. Derleyicinin Kendiliğinden Yaptığı Veri Tipi Dönüşümleri 79 3.6.2. Tip Atamaları 80 3.6.3. Veri Tipi Dönüşümleri Sırasında Karşılaşılan Güçlükler 82 4. BÖLÜM EKRANA YAZDIRMA VE EKRANDAN OKUTMA 4. EKRANA YAZDIRMA VE EKRANDAN OKUTMA 85 4.1. EKRANA YAZDIRMA 85 4.2. DİYALOG KUTUSUNA YAZDIRMA 85 4.3. EKRANDAN OKUTMA 86 4.4. DİYALOG KUTUSUNDAN OKUTMA 89 4.5. RAKAMLARI STRING’E DÖNÜŞTÜRME 92 4.6. FORMATLI YAZDIRMA 93 4.6.1. Tam Sayıları Nokta Kullanarak Yazdırma 93 4.6.2. Ondalık Sayıları Formatlı Yazdırma 94 4.6.3. Ekrana Formatlı Yazdırmak İçin printf() Metodunu Kullanma 96 4.6.4. Birden Çok Parametre Olması Durumu 96 4.6.5. Tarih ve Saat 97 4.6.6. Saat 97 4.6.7. Haftanın Günü, Ay ve Gün 98 4.6.8. String Sınıfının format() Metodunun Parametre Olarak Kullanılması 98 4.7. Calendar SINIFI 99 5. BÖLÜM SEÇME VE TEKRAR 5. SEÇME VE TEKRAR 101 5.1. SEÇME 101 5.1.1. Basit if İfadesi 101 5.1.2. if … else.. İfadesi 102 5.1.3. else if İfadesi 103 5.1.4. Şartlı İfade 104 5.1.5. switch İfadesi 105 5.1.6. if ve switch İfadesi Arasında Tercih 107 5.2. TEKRAR (DÖNGÜ) 108 5.2.1. do…while Döngüsü 108 4.2.2. while Döngüsü 109 5.2.3. for Döngüsü 110 5.2.4. Farklı for Döngüleri 112 5.2.5. Metotların Kendi Kendilerini Çağırmaları 114 5.3. İÇ İÇE ŞEÇME VE / VEYA TEKRAR YAPILARI 117 5.3.1. Çarpım Tablosu 117 5.3.2. Takvim Hazırlama 118 5.4. break ve continue KONTROL DEYİMLERİ 120 6. BÖLÜM BASİT OLMAYAN VERİ TİPLERİ: 1 SINIF 6. SINIF 123 6.1. SINIF 124 6.1.1. Sınıf Gerçekten Gerekli mi? 124 6.1.2. Basit Bir Sınıf Bildirimi 125 6.1.3. Sınıfın Alan Değişkenlerine Doğrudan Değer Atama 125 6.1.4. Sınıfın Alan Değişkenlerine Sınıfın Metodunu Kullanarak Değer Atama 126 6.1.5. Birden Çok Sınıf 127 6.2. SINIFIN METOTLARI 128 6.2.1. Sınıfın Metotlarına Değer Gönderme 128 6.2.2. Metotlardan Değer Döndürme 129 6.2.3. Referans Veri Tipleri 131 6.3. SINIFIN NESNELERİ 135 6.3.1. Nesne Bildirimi 135 6.3.2. Değişik Referans Örnekleri 137 6.3.3. Hazır Sınıfların Nesneleri ve import Belirticisi 137 6.3.4. Kurucu Metotlar 139 6.3.5. Yok Edici Metot 141 6.3.6. Nesneleri Kopyalama 143 6.3.7. Nesnelerin Eşitliği 143 6.3.8. Nesnelerin Alan Değişkenlerini Karşılaştırma: instanceof 144 6.4. this REFERANS BELİRTİCİSİ 145 6.5. static BELİRTİCİSİ 146 6.5.1. static Değişkenler ve Metotlar 146 6.5.2. static Sabit Bildirimi 148 6.5.3. static import 148 6.6. SINIF VERİ TİPİNİN ÖZELLİKLERİ 149 6.7. VERİYİ GİZLEME 150 6.8. METOTLARIN AŞIRI YÜKLENMELERİ 150 6.9. KALITIM 152 6.9.1 Model Sınıflar 152 6.9.2. Nesnelerin Alan Değişkenlerine Kurucu Metotları Kullanarak Değer Atama 156 6.9.3. Nesnelerin Alan Değişkenlerine Değerlerini Diğer Metotlarla Gönderme 157 6.9.4. Metotların Kalıtım Yoluyla Geçmesi 158 6.9.5. Alan Değişkenlerinin Kalıtım Yoluyla Geçmesi 159 6.9.6. protected Belirticisi ve Kalıtım 160 6.9.7. Kurucu Metotların Kalıtım Yoluyla Geçmesi 160 6.10. ÇOK ŞEKİLLİLİK 161 6.11. SOYUT (abstract) SINIFLAR 166 6.11.1. Soyut Sınıf Kavramı 166 6.11.2. Soyut Sınıf ve Soyut Metot Örneği 170 6.12. ARAYÜZ 172 6.12.1. Tekli Kalıtım Örneği 173 6.12.2. İkili Kalıtım Örneği 174 7. BÖLÜM BASİT OLMAYAN VERİ TİPLERİ: 2 DİZİ VE NUMARALAMA 7. DİZİ VE NUMARALAMA VERİ TİPLERİ 177 7.1. DİZİ VERİ TİPİ 177 7.1.1. Dizi Bildirimi 177 7.1.2. Diziye Bellekte Yer Ayarlama 178 7.1.3. Dizinin Elemanlarına İndis Kullanarak Ulaşma 179 7.1.4. Diziye İlk Değerlerin Atanması 179 7.1.5. Dizi Veri Tipinin Elemanları 182 7.1.6. Diziyi Metoda Parametre Olarak Gönderme 183 7.1.7 Metottan Dizi Döndürme 185 7.1.8. Dizileri Karşılaştırma 186 7.1.9. İki-Boyutlu Dizi : Matris Çarpımı 187 7.1.10. İki-Boyutlu Dizi: Özel Hal 188 7.1.11. Ham Puanı Harfe (Nota) Çevirme 189 7.1.12. Nesneyi Diziye Atama 191 7.1.13. Vector SINIFI 192 7.2. ArrayList SINIFI 192 ArrayList 195 açıklama 195 ArrayList liste = 195 new ArrayList(); 195 liste.get(indis); 195 Diziden/listeden eleman döndürme 195 7.3. NUMARALAMA VERİ TİPİ 195 7.3.1. Eski Tip enum Bildirimi 195 7.3.2. Yeni Tip Enum Bildirimi 196 7.3.3. Sınıf ve enum Veri Tipi 198 8. BÖLÜM DOSYA 8. DOSYA 199 8.1. GİRİŞ 199 8.2. File SINIFI 200 8.2.1. Giriş 200 8.2.2. Ana Dizini Öğrenme 202 8.2.3. Sürücüleri Öğrenme 203 8.2.4. Dosya Listesi 203 8.2.5. Filitreleme 204 8.3. METİN DOSYASINA YAZDIRMA VE METİN DOSYASINDAN OKUTMA 205 8.3.1. PrintWriter Sınıfının output Nesnesini Oluşturma ve Dosyaya Yazdırma 205 8.3.2. Scanner Sınıfının input Nesnesini Oluşturma ve Dosyadan Okutma 207 açıklama 208 Özel bir dosyadan değerleri tarayan tarayıcıyı oluşturur 208 8.4. İKİLİ (binary) DOSYA GİRİŞ-ÇIKIŞI 209 8.4.1. Bilgisayarın Dosya Tercihi 209 8.4.2. Metin Dosyasına Yazdırma 210 8.4.3. İkili (binary) Dosyaya Yazdırma 210 8.5. İKİLİ GİRİŞ/ÇIKIŞ SINIFLARI 210 8.5.1. InputStream 211 8.5.2. OutputStrem 211 8.5.3. FileInputStream 212 8.5.4. FileOutputStream 212 8.5.5. DataInputStream 213 8.5.6. DataInput Arayüzünün Metotları 213 8.5.7. DataOutputStream 214 8.5.8. DataOutput Arayüzünün Metotları 214 8.5.9. Dosya Kontrolü 216 8.6. DOSYAYI BİR BAŞKA DOSYAYA KOPYALAMA 216 8.7. RASTGELE ULAŞILABİLEN DOSYALAR 218 9. BÖLÜM JENERİK SINIFLAR 9. JENERİK SINIFLAR 223 9.1. JENERİK SINIF GEREKLİ Mİ? 223 9.2. JENERİK SINIF BİLDİRİMİ 224 9.2.1. Jenerik Cember Sınıfı Bildirimi 224 9.2.2. Jenerik Cember Sınıfının Kullanılması 225 9.2.3. Jenerik Yığın Sınıfı Bildirimi 226 9.2.4. Jenerik Yığın Sınıfı Bildiriminin String ve Integer İçin Kullanılışı 227 9.3. JENERİK METOTLAR 229 9.4. PARAMETRE OLARAK KULLANILAN JENERİK SINIF BİLDİRİMLERİ 229 10. BÖLÜM VERİ DEPOLAMA 10. VERİ DEPOLAMA 231 10.1. GİRİŞ 231 10.2. Collection ARAYÜZÜ, AbstractCollection SINIFI ve Collections SINIFI 231 10.2.1.Collection Arayüzü 231 10.2.2. AbstractCollection Sınıfı 233 10.2.3. Collections Sınıfı 233 10.3. Iterator ARAYÜZÜ 235 10.4. Set ARAYÜZÜ 235 10.5. List Arayüzü 237 10.5.1. MyList Arayüzü 237 10.5.2. Vector (Vektör) Sınıfı 244 10.5.3. Stack Sınıfı 245 10.6. Queue ARAYÜZÜ 247 10.6.1. Queue (Kuyruk) Arayüzü 247 10.6.2. Queue (Kuyruk) Sınıfı 248 10.6.3. Priority Queue (Öncelik Kuyruğu) Sınıfı 249 10.7. Map ARAYÜZÜ 250 11. BÖLÜM GRAFİK KULLANICI ARAYÜZÜ (GUI) 11. GRAFİK KULLANICI ARAYÜZÜ (GUI) 253 11.1. GİRİŞ 253 11.1.1. GUI Bileşenleri 253 11.1.2. Swing Bileşenler 254 11.2. ÇERÇEVELER (Frames) 256 11.2.1. Çerçeve (Frame) Sınıfı 257 11.2.2. Çerçeve (Frame) Oluşturma 257 11.2.3. Çerçeveye Eleman Ekleme 258 11.3. YERLEŞME DÜZENLEYİCİLERİ: Layout Managers 259 11.3.1. FlowLayout Düzenleyicisi 260 11.3.2. BoxLayout Düzenleyicisi 262 11.3.3. GridLayout Düzenleyicisi 263 11.3.4. GridBagLayout Düzenleyicisi 264 11.3.5. BorderLayout (Kenar) Düzenleyicisi 266 11.4. Color (renk) SINIFI 268 11.5. Font SINIFI 269 11.6. ALT DEPOLAYICILAR OLARAK PANELLER 270 11.7. İKONLAR 272 12. BÖLÜM GRAFİK ÇİZME 12. GRAFİK ÇİZME 273 12.1. GRAFİK 273 12.1.1. Java Koordinat Sistemi 273 12.1.2. Java Bileşenlerinin Koordinat Sistemleri 274 12.1.3. Çerçeve ve Düğme Oluşturma 274 12.2. Graphics SINIFI 275 12.2.1. Graphics Sınıfının Metotları 275 12.2.2. paintComponent() Metodu 278 12.2.3. Panelin Üzerine Grafik Çizdirme 280 12.2.4. Çizgi Şekli, Sonu ve Birleşimi 281 12.2.5. Bir Fonksiyonun Grafiğini Çizdirme 283 12.2.6. Çan Eğrisinin Grafiği 287 12.2.7. İkinci Dereceden Bir Polinomun Grafiği 290 12.3. FigurePanel SINIFI 292 12.4. ARK ÇİZDİRME 295 12.5. Polygon SINIFI 297 13. BÖLÜM OLAY VE DİNLEYİCİ 13. OLAY (Event) VE DİNLEYİCİ (Listener) 301 13.1. OLAYIN TANIMI VE OLAY SINIFLARI 301 13.1.1. Olayın Tanımı 301 13.1.2. Olay Sınıfları 301 13.2. DİNLEYİCİ (Listener) 303 13.2.1. Dinleyici (Listener) Kavramı 303 13.2.2. Basit Örnekler 305 13.3. ÖRNEKLER 311 13.3.1 Fare (mouse) Olayları 311 13.3.1.1. Fare Olaylarını Yöneten Sınıflar ve Arayüzler 311 13.3.1.2. Fereyi Kullanarak Panel Üzerinden Mesaj Gönderme 312 13.3.2. Tuş (key) Olayları 316 13.3.3. Timer Sınıfı 318 13.3.4. StillClock Sınıfı 320 13.3.5. MessagePanel Sınıfı 324 13.3.6. Olay ve Dinleyici 325 13.3.7. Aç - Kapa 327 13.3.8. Trafik Işıkları 329 14. BÖLÜM KONTROL YAPILARI 14. KONTROL YAPILARI 333 14.1. GİRİŞ 333 14.2. DÜĞMELER : JButton 333 14.3. ONAY KUTULARI: JCheckBox 336 14.4. SEÇME HALKALARI : JRadioButton 341 14.5. ETİKET : JLabel 346 14.6. METİN ALANI 1 : JTextField 349 14.7. ONAY, SEÇME, ETİKET VE TEKST ALANI 350 14.8. METİN ALANI 2 : JTextArea 354 14.9. METİN ALANI 3: JPasswordField 357 14.10. FORMATLI METİN ALANI : JFormattedTextField 361 14.11. LİSTEDEN SEÇME : JComboBox 363 14.12. LİSTE : JList 368 14.13. TARAYICI : JScrollBar 372 14.14. SÜRÜKLEYİCİ : JSlider 374 15. BÖLÜM EKLER 15. EKLER 379 E.1. Math SINIFININ METOTLARI 379 E.1.1. Matematik Sınıfının Metotlarını Kullanma 379 E.1.2. Trigonometrik Metotları Kullanma 380 E.1.3. Yuvarlayıcı Metotları Kullanma 382 E.1.4. min, max ve abs Metotlarını Kullanma 383 E.1.5. Random Metotları Kullanma (1) 384 E.1.6. Random Metotları Kullanma (2) 385 E.2. İŞLEMCİLERİN ÖNCELİK SIRALARI 386 E.3. KISALTMALAR 387 16. BÖLÜM KAYNAKLAR 16. KAYNAKLAR 389 Kavram Dizini 391 |