Upload
trinhquynh
View
233
Download
4
Embed Size (px)
Citation preview
TÜRKİYE'NİN EN ÇOK SATAN JAVA KİTABI abakUS
KOLAYLASTIRILMIS KOD • •
TAKİBİYLE 215 ÖRNEK ©l'teffllnlDE
•
KiM KORKAR '
AN. TEMEL JAVA
Alper AKALIN
• Java Temel Bilgiler • Java 8 ve Getirdikleri
• Kod Blokları • Multithreading
• Algoritma • NetBeans iDE
• Stringler • Veritabanlarına Giriş
• Nesne Yönelimli Programlama • JDBC
KİM KORKARJAVA'DAN
Alper AKALIN
010
Kim Korkar Java'danAlper AKALIN6. Baskı: Nisan 20157. Baskı: Nisan 20159. Baskı: Eylül 2016ISBN: 978-605-9129-08-4
Kapak ve sayfa düzeni: Cem DemirezenSatış: [email protected]
Baskı: Deniz Ofset Matbaacılık Gümüşsuyu Cad. Topkapı Center, Odin İş Merkezi No: 403/2 Topkapı-İstanbul Tel: 0212 613 30 06 - Faks: 0212 613 51 97 Matbaa sertifika No: 29652
Bu kitabın bütün yayın hakları Abaküs Kitap Yayın Pazarlama'ya aittir. Yayınevimizin yazılı izni olmaksızın kısmen veya tamamen alıntı yapılamaz, kopya edilemez, ço-ğaltılamaz ve yayınlanamaz.Kitapta kullanılan logolar, firmaların tescilli logolarıdır.
Selda Ustabaş Demiryakan Abaküs Kitap Yayın Dağıtım HizmetleriYayıncılık sertifika no: 31359Osmanağa Mah. Bahariye Cad. No:37/101 Kadıköy-İST.www.abakuskitap.com - [email protected]
Tel. : (0216) 418 09 66 Faks : (0216) 418 09 66
Alper AKALIN1979 Konya doğumlu. İlk – Orta – Lise’yi Konya bozkırında buğday başakları ile okumuş. Üniversitede biraz babasının izinden gitmek belki de çok fazla sevdiğinden Fizik okumayı seçmiş. Gözü bilgisayar denen alameti farikayı sürekli takipte, hep bir garip merak içinde acaba bu mucizevi aletin için ne var diye. 2002 yılında IT sekörüne adım atmış, dönemin rüzgârına kapılarak. 2005 yılında C# ile yazılım/web sektörüne zaman harcamış. 2007 yılında iç huzura erip Java dünya-sında kelebek uçurmaya başlamış.Hastane Bilgi Yönetim Sistemleri, Tele Radyoloji Sistemleri, Doküman Yönetim Sis-temleri, OCR, E-Belediye, biraz İş Zekası ve Telekominikasyon sektörlerinde ufak ufak geliştirmeler yapmış. Azcık ucundan eğitmen.An itibari ile Finans/Bankacılık sektöründe ter dökmekte olan, Java Programcısı, ya-zar.email: [email protected]: Alper Akalıntwitter: @alper_akalin
iii
v
Teşekkürler...Kitabın hazırlanmasında örnek doğruluğu ve anlam bütünlüğü kontrolünde
yardımlarını esirgemeyen arkadaşım Volkan Özdemir’e Java eğitim dokümanı hazırlama isteğimi
kitap projesine dönüştürmem için yaptığı teşviklerden dolayıkardeşim Yaşar Akkaya’ya teşekkürlerimi sunarım
İlk kitabımı benden sevgi ve desteklerini hiçbir zaman eksik etmeyen babam İbrahim Akalın ve annem Hakime Akalın’a ithaf edebilmenin
tarifsiz mutluluğu için şükürler olsun….
ix
İÇİNDEKİLER
1. Java ve Nesneye Yönelim 1Kitap Hakkında 3
2. Java Temel Bilgiler 5Derleyici 5Yorumlayıcı 5Paket Kavramı 6Nesne Kavramı 6Sınıf Kavramı 6Metot Kavramı 6Main Metot Kavramı 6Java 7
Java Dilinin Temel Özellikleri 7NetBeans 8
3. İlk Program 15String ve + Operatörü 16
4. Temel - İlkel (Primitif) Veri Tipleri 19Tam Sayılar 19Ondalıklı - Kayar Noktalı Sayılar 20Başlangıç Değerleri 20Casting, Tip Belirleme 21Karakter Literaller 21
Değer Atama - Karakter Atama Durumu 21Wrapper’lar 23
5. Tip Dönüşümleri, Casting 25Primitif Veri Tipleri ve Karakter Katarları Dönüşümleri 26Primitif Sayısal Veri Tiplerinin String Veri Tipine Dönüştürülmesi 28
6. Java Operatörler 31Aritmetik Operatörler 31Aritmetik Artırma - Eksiltme Operatörleri 33Aritmetik Atama Operatörleri 34İlişkisel - Karşılaştırma Operatörleri 35
İlişkisel Operatörleri if Deyimi Üzerinden İnceleyelim 37Mantıksal Operatörler 38Bitwise Operatörler 40
x
Operatör Önceliği 43
7. Temel Veri Tipleri Java SE7 ile Gelen Yenilikler 45
8. Kod Blokları 49
9. Kontrol Yapıları 53Karşılaştırma İfadeleri 53
if Deyimi 54Birden Fazla Önermeyi Bir if Cümleciğinde Birleştirme 55if-else Deyimi, Çift Seçimli Yapı 56else-if Deyimi 57if-then-else 58Switch-Case Yapısı - Çok Seçimli Yapı 59
Döngü İfadeleri - Tekrarlı Yapılar 61While Döngüsü 62do-while Döngüsü 63For Döngüsü 64
Dallanma İfadeleri 67Break Deyimi 67Continue Deyimi 69Return Deyimi 70
10. Java SE7 - String İfadeler ve Switch Yapısı 71
11. Klavyeden Basit Giriş - Çıkış İşlemleri 73Paket Kavramı 73Import Kavramı 74Joker Kavram .* 74Scanner Kavramı 74
Bazı Scanner Yontemleri 74Bilgi Giriş-Çıkışı 75
12. Algoritma 77Algoritma İfade Şekilleri 77
13. Uygulamalar 81Sayaç Mantığı 85
xi
14. Math Sınıfı 93Rastgele Sayı Üretimi 95
15. Metotlar 99Metotlar 99
Parametresiz Metotlar 99Metotlarda Parametre 100Metot’ların Oluşturulması 100Signatur 102Metotların Çağırılması 102Dönüş Değeri Olmayan Metotların Çağırılması 105Yapılandırıcı Metodlar - Constructors 108Method Overloading - Metot Aşırı Yükleme 108Değişkenlerin Faaliyet Alanları 110
16. Diziler 113Referans Tipler 113Dizi Oluşturma 113Dizi Boyutunun Değiştirilmesi 114Dizi Boyutunun Belirlenmesi 114
Dizi Elemanlarına Değer Atama 115Geliştirilmiş For Döngüsü 120Dizilerin Metotlara Argüman Olarak Atanması 121Parametre Sayısı Değişken Metotlar 123İki Boyutlu Diziler - Matrisler 124
İki Boyutlu Diziler 125Çok Boyutlu Diziler 126
Dizilerin Kopyalanması 126Array Sınıfı 128ArrayList Sınıfı ve Dinamik Dizi Tanımlama 129
17. Stringler 131Stringlerin Oluşturulması 131String Metodlar 132
String’lerin Karşılaştırılması 134
18. Nesne Yönelimli Programlama 137İlk Sınıfımızı Yazalım 138New Operatörü 141Nokta Operatörü 141Çöp Toplama - Garbage Collection 145Yapılandırıcılar - Constructors 145
xii
Erişim Belirleyiciler 149Public (Açık) 149Private (Özel) 149Protected (Korumalı) 150Encapsulation – Kapsülleme 150Default-Friendly 150
Static Alanlar 157This Kelimesi 161Final Alanlar 164Metodlara Argüman Olarak Nesne Gönderme 168
Pass By Referance 168
19. Yapılandırıcılar - Constructors 175
20. Kalıtım - Inheritance 189Kalıtımın Kontrolü 190
Kalıtımın Faydaları 190Metot Overriding 190Object Sınıfı 204
toString Metodu 204super() Deyimi 204Kompozisyon 209
21. Çok Biçimlilik - Polymorphism 213Çok Biçimlilik 218Geç Bağlama - Late Binding 218instanceof Metodu 219Genişletilebilirlilik - Extensibility 220
22. Soyut Sınıflar -Abstract Classes 227Soyut Sınıf Kısıtlamaları 227Final Sınıf ve Metodlar İçin Uyarı 232
23. Arayüzler - Arabirimler Interface 233Arayüzlerde Çok Biçimlilikten Faydalanma 239
24. İstisnalar - Exceptions 243Try - Catch Blokları 245İstisna Sınıfları 250
Kontrollü İstisnalar 250Kontrolsüz İstisnalar 251
İstisna Tanımlama 251
xiii
İstisna Sınıflarında Ortak Kullanılan Metotlar 252Finally Bloğu 255
25. Dosya İşlemleri 261Data Hiyerarşisi 261Dosya - Stream (Akım) 262Java’daki Dosya İşlemleri Sınıfları 262
File Sınıfı 273File Sınıfı Yapılandırıcıları 273File Sınıfı Metotları 274
Serileştirme 277
26. JavaSE7 ve Try Catch Blokları 285Java7’den sonra 286
27. Java7 Kaynak Kapama 289
28. Generics - Jenerik Sınıflar 293Genel Sınıf Oluşturma 296Generics – Jenerik Metodlar 298Genel Metot Oluşturma 300
29. Dahili - İç Sınıflar (Inner Class) 307Dahili Üye Sınıflar 308
Dahili Üye Sınıflarda Erişim 309İç İçe Dahili Üye Sınıflar 312Dahili Üye Sınıflar ve Türeme-Türetilme Durumları 313
Static Dahili Sınıflar 316Dahili Yerel Sınıflar 321Anonim Dahili Sınıflar 323
30. Kolleksiyonlar - Collections 325List Arabirimi 326Set Arabirimi 327Map Arabirimi 327Set Arabirimi 329
HashSet Sınıfı 329LinkedHashSet Sınıfı 333TreeSet Sınıfı 335
List Arabirimi 336ArrayList Sınıfı 337LinkedList Sınıfı 338
xiv
Vektör Sınıfı 341Stack Sınıfı 343Queue (kuyruk) Sınıfı 344
Map Arabirimi 346SortedMap Arabirimi 347Map Arabiriminin Somut Sınıfları 347
31. JavaSE7 Diamond Inference ve Generic Tipler 351
32. Multithreading 355Thread Sınıfının Metodları 356Synchronization - Eş Zamanlama 363Monitör 364
33. Java 8 ve Getirdikleri 371Tarih Saat İşlemleri 371
LocalDate Sınıfı 373LocalTime Sınıfı 374LocalDateTime Sınıfı 375Tarih Formatlama 376
Java 8 Arayüzler 378Default Metod 380Static Metod 384
Lambda Expressions 387Functional Interfaces 390Lambda Expressions 390
Stream API 391StreamAPI Özellikleri: 391Koleksiyonlar ve Streamler 392Stream’ların Doğası 392Intermediate ve Terminal Operasyonlar 392
34. Swing ile GUI Programlama 399GUI Sınıfları 400Layoutlar 405
FlowLayout 405GridLayout 405BorderLayout 405CardLayout 405
Yardımcı Sınıflar 412Paneller 416İkonlar 417
xv
Grafikler - Şekil Çizme 420Dikdörtgen 420Oval 421Yay 421Paneller Üzerinde Grafik Çizimi 423
Polygon ve Polyline 425Event Driven Programlama 432
Olaylar ve Olay Güdümlü Programlama 432Event Sınıfları 433EventListener Sınıfları 434Adapter Sınıfları 434WindowEvent Sınıfı 439MouseEvent Sınıfı 444KeyEvent Sınıfı 448
Komponentler 451Yapılandırıcı Metotları, Metotları, Olayları 451JButton 452JCheckBox 453JRadioButton 453JLabel 454JTextField 463JTextArea 470JComboBox 474JList 479CardLayout 482Menüler 485SwingWorker Sınıfı - class SwingWorker<T,V> 491JProgressBar 491
Netbeans GUI Builder 496
35. Ağ Programlama 505İstemci-Sunucu Arasındaki Data Transferi 507İstemci-Sunucu Arasında Nesne İletimi 513
UDP 522MultiThreading 526
36. Veritabanlarına Giriş 527Veritabanı - Database 527
Kayıt İşlemleri 528Tablo Oluşturma - Create Komutu 530Satır Ekleme - Insert Komutu 530Tablo Değiştirme - Alter Komutu 531
xvi
Tablo Silme - Drop Komutu 531Seçim Yapma - Filtreleme - Selection Komutu 531Seçimli Yapılarda Koşul Belirtme - Where Komutu 531Koşul Belirtmede Mantıksal İfadelerden Yararlanma 532Koşul Belirtmede ‘in’ Kullanımı 532Benzerlik Koşulu - Like Komutu 532Sıralama Belirleme - OrderBy Komutu 532Aggreate - Toplama Değerler 533Gruplama-Group By Komutu 533Birleştirme - Join 533Kayıt Güncelleme - Update Komutu 533Silme - Delete Komutu 534
Netbeans ile Veritabanlarına Erişim 548
37. JDBC 553Bağlantı Adresi 555Bağlantı Kurma 555SQL Tipleri ve Java Karşılıkları 557JDBC SORGULAR-QUERY 557
Statement-Demeç 557Prepared Statement 559Callabe Statement 562
Result Set - Sonuç Kümesi 562Kaydırılabilir ResultSet 562
Metadata - Üstveri 564ResultSetMetaData 564
Transaction 566Kapanış 567