©l'teffllnlde kim korkar an. · pdf file•algoritma • netbeans ide ... 18....

14
TÜRKİYE'NİN EN ÇOK SATAN JAVA KİTABI abak KOLAYLASTIRILMIS KOD TAKİBİYLE 215 ÖRNEK ©lDE 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

Upload: trinhquynh

Post on 06-Feb-2018

231 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 2: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

KİM KORKARJAVA'DAN

Alper AKALIN

Page 3: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 4: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 5: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 6: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

İ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….

Page 7: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 8: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 9: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 10: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 11: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 12: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 13: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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

Page 14: ©l'teffllnlDE KiM KORKAR AN. · PDF file•Algoritma • NetBeans iDE ... 18. Nesne Yönelimli Programlama 137 İlk Sınıfımızı Yazalım 138 New Operatörü 141 Nokta Operatörü

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