içindekiler

advertisement
İÇİNDEKİLER
VII
İÇİNDEKİLER
1 JAVA DİLİNE GİRİŞ Java Dilinin Kısa Tarihi Java Dilinin Üstünlükleri JVM (Java Virtual Machine - Java Sanal Makinesi) JRE (Java Runtime Environment - Java Çalışma Ortamı) JDK (Java Development Kit - Java Geliştirme Kiti) J2EE, J2SE, J2ME Kavramları J2EE (Enterprise Edition) J2ME (Micro Edition) J2SE (Standart Edition) Değerlendirme Soruları 1
1
2
3
5
5
6
6
6
6
7
2 JAVA ÇALIŞTIRMA ORTAMI JDK Kurulumu Path Ayarları Eclipse Kurulumu Eclipse Ortamını Tanıyalım Eclipse Arayüzü Eclipse İçerisinde JRE Ayarları Eclipse ile Proje Oluşturma Bir Projeyi Eclipse İçerisine Dahil Etme Eclipse Kısayolları Java Uygulamasını Eclipse Dışında Çalıştırma Java ile İlk Programımız Intellisense Teknolojisi Not Defteri ile Java Kodu Yazma ve Derleme Eclipse Üzerinde Debug İşlemleri Debug Nedir? Breakpoint Yerleştirme Breakpoint Görünümü ve Breakpoint’leri Kaldırma Değerler Görünümü ve Değişkenlerin Debug Modunda Değerlerini Değiştirme Değerlendirme Soruları 9
9
13
15
17
17
19
20
21
23
24
26
30
31
32
32
33
36
37
37
38
VIII
YENİ BAŞLAYANLAR İÇİN JAVA
3 PAKET (PACKAGE) KAVRAMI Paket (Package) Kavramına Giriş Paket Tanımlaması Paketleri Import Etme Java Path ve ClassPath Ayarları Değerlendirme Soruları 39
39
39
41
43
46
4 DEĞİŞKENLER VE VERİ TİPLERİ 47
Değişkenler ve Veri Tiplerine Giriş 47
Değişken Tanımlama Kuralları 48
Primitif Tipler 49
Byte 49
Short 50
Int 50
Long 50
Float 50
Double 51
Char 51
Boolean 52
Referans Tipler 52
String Veri Tipi 53
Primitive Tipleri, Referans Tipi Şeklinde Yazma 55
Sayılarda Altçizgi ( _ ) Kullanarak Sayıları Bölümleme 57
İkili Tabandaki Sayıları Değişkenlerde Tutma 58
Boxing ve Unboxing Kavramları 60
Lokal Değişkenler 61
Sabit Tanımlama 62
Tip Dönüşümleri (Type Casting) 64
Java’da Kullanılan Anahtar Kelimeler 69
Değerlendirme Soruları 70
5 OPERATÖRLER Operatörlere Giriş Atama Operatörleri Temel Atama Operatörü ( = ) Diğer Atama Operatörleri ( +=, -=, *=, /= ) Çoklu Atama İşlemi 71
71
71
72
72
73
İÇİNDEKİLER
İki Değişkenin Değerinin Takas Yapılması İlişkisel Operatörler Aritmetik Operatörler Temel Aritmetik Operatörler ( +, -, *, / ) Mod Operatörü ( % ) ( - ) Operatörü ile Sayıyı Negatif Yapma Arttırma (++) ve Azaltma (--) Operatörleri Mantıksal Operatörler Bitsel Operatörler Temel Bitsel Operatörler ( ~, &, |, ^ ) Kaydırma Operatörleri ( >>, << ) Tip Karşılaştırma Operatörü Operatör Önceliği Değerlendirme Soruları 74
75
78
78
79
79
80
82
84
84
86
88
89
91
6 KONTROL YAPILARI VE DÖNGÜLER 93
Kontrol Yapıları 93
If-Else Yapısı 93
If-Else if Yapısı 96
İç içe If Yapıları 97
Switch Yapısı 98
Döngüler 104
While Döngüsü 104
Do-While Döngüsü 107
For Döngüsü 109
Gelişmiş For Döngüsü 113
Break ve Continue İfadeleri 115
Değerlendirme Soruları 118
7 METODLAR Metod Nedir? Metod Oluşturma Parametresiz Metodlar Parametreli Metodlar Metodlara Dizi Türünden Parametre Geçirmek Metodları Aşırı Yükleme (Overloading) Metodlarda Özyineleme (Recursion) 119
119
119
120
122
129
131
134
IX
X
YENİ BAŞLAYANLAR İÇİN JAVA
Static Metodlar Main Metodu Neden Static? Değerlendirme Soruları 137
140
141
8 DİZİLER Dizilere Giriş Dizi Tanımlama Şekilleri Dizi Elemanına Erişme Dizi Elemanlarını Listeleme Object Sınıfından Dizi Oluşturma Bir Dizinin Boyutu Dizileri Kopyalama System.arraycopy Metodu ile Diziyi Kopyalama Dizileri Sıralama Array.sort Metodu ile Diziyi Sıralama Dizilerde Arama binarySearch Yöntemi ile Dizilerde Arama İşlemi Dizileri Karşılaştırma Arrays.equals Metodu ile Dizilerde Eşitlik Kontrolü Çok Boyutlu Diziler Çok Boyutlu Dizi Tanımlaması Çok Boyutlu Dizi Elemanlarına Erişim Çok Boyutlu Dizileri Listeleme Çok Boyutlu Dizinin Uzunluğu String [ ] args Dizisi Arrays Sınıfı Metotları Arrays.asLıst Metodu ile Diziyi Liste Yapısına Kopyalama Arrays.copyOf Metodu ile Dizinin Belli Bölümünü Kopyalama Arrays.copyOfRange ile İki İndis Arasındaki Elemanları Kopyalama Arrays.fill Metodu ile Diziye Eleman Atamak Değerlendirme Soruları 143
143
143
145
146
149
150
152
153
154
154
155
155
155
157
157
158
158
159
161
163
164
169
169
170
171
172
174
9 SCANNER SINIFI VE JOPTIONPANE İLE KLAVYEDEN VERİ ALMA Scanner Sınıfına Giriş Scanner Sınıfı ile İlgili Örnekler JOptionPane Kullanımı 177
177
178
185
İÇİNDEKİLER
Kullanıcıdan Veri Alma Bilgi Mesajı Gösterme JOptionPane ile İlgili Örnekler Değerlendirme Soruları 10 NESNEYE YÖNELİK PROGRAMLAMA Nesneye Yönelik Programlamaya Giriş Sınıf ve Nesne Kavramları Sınıf Oluşturma new Anahtar Kelimesi ile Nesne Oluşturma Sınıf ve Nesne Değişkenleri Pass By Value - Pass By Reference (Değer ve Referans Tipler) Yapıcılar (Constructor) Kapsülleme (Encapsulation) Erişim Belirleyiciler (Access Modifiers) Private Anahtar Kelimesi Protected Anahtar Kelimesi Public Anahtar Kelimesi Getter ve Setter Metodlar Getter ve Setter Metodlarını Tanımlama Eclipse Üzerinde Kısayoldan Getter ve Setter Oluşturma this Anahtar Kelimesi Static Anahtar Kelimesi Static Metodlar Static Import Enum Kavramı Enum Tanımlama Enum İçerisindeki Elemanları Yazdırmak Ordinal Metodu ile enum Elemanlarının İndisini Öğrenme Enum İçerisinde Metod Tanımlama Annotation Kavramı Annotation Oluşturma Garbage Collector (Çöp Toplayıcı) Finalize Metodunun Kullanımı Değerlendirme Soruları 185
186
189
193
195
195
196
197
198
201
205
209
214
214
215
217
219
222
222
225
226
229
231
232
233
233
236
237
239
240
241
244
245
248
XI
XII
YENİ BAŞLAYANLAR İÇİN JAVA
11 KALITIM (INHERITANCE) Kalıtım Kavramına Giriş Super Class (Üst Sınıf) ve Sub Class (Alt Sınıf) Kavramları Super Metodu ile Üst Sınıfın Yapıcısını Çağırmak Metod Overriding toString Metodunun Override Edilmesi Final Anahtar Kelimesi Final ile Sabit Tanımlama Final ile Metodların Override Edilmelerini Engelleme Final ile Parametrelerin Değerinin Değişmesini Engelleme Final ile Sınıfların Kalıtımını Engelleme Upcasting ve Downcasting Kavramları Değerlendirme Soruları 251
251
253
257
262
267
271
272
274
275
276
277
282
12 SOYUT (ABSTRACT) SINIFLAR, METODLAR Soyut Sınıflar ve Metodlara Giriş Soyut Sınıf ve Kalıtım Arasındaki İlişki Soyut Sınıf Örneği Değerlendirme Soruları 283
283
284
285
291
13 ARAYÜZLER (INTERFACE) Arayüz Kavramına Giriş Arayüz Örneği Arayüzlerde Genişletilme Özelliği Arayüz İçerisinde Başka Bir Arayüz Kullanma Değerlendirme Soruları 293
293
294
298
301
303
14 DAHİLİ SINIFLAR (INNER CLASSES) Dahili Sınıflara Giriş Dahili Üye Sınıflar Dahili Üye Sınıflar ve Erişim Belirteçleri Yerel Sınıflar İsimsiz Sınıflar Değerlendirme Soruları 305
305
305
307
314
316
318
15 ÇOK BİÇİMLİLİK (POLYMORPHISM) Polimorfizm Kavramına Giriş Geç Bağlama Instanceof ile Tip Kontrolü 319
319
324
327
İÇİNDEKİLER
getclass Metodu ile Nesnenin Sınıfını Öğrenme Değerlendirme Soruları 331
334
16 MATH SINIFI İLE MATEMATİKSEL İŞLEMLER Math Sınıfına Giriş Math.pow Metodu ile Sayının Üssünü Alma Math.sqrt Metodu ile Sayının Karekökünü Alma Math.abs Metodu ile Sayının Mutlak Değerini Alma Math.floor Metodu ile Sayıyı Alt Değere Yuvarlama Math.ceil Metodu ile Sayıyı Üst Değere Yuvarlama Math.max Metodu ile Büyük Sayıyı Bulma Math.min Metodu ile Küçük Sayıyı Bulma Math.random Metodu ile Rastgele Sayı Üretme Random Sınıfı ile Rastgele Sayı Üretme Math.toDegrees Metodu ile Radyanı Dereceye Çevirme Math.toRadians Metodu ile Dereceyi Radyana Çevirme Math.sin Metodu ile Sinüs Bulma Math.asin Metodu ile Ters Sinüs Bulma Math.cos Metodu ile Cosinüs Bulma Math.acos Metodu ile Ters Cosinüs Bulma Math.PI ile PI Sabitini Kullanma Logaritma Metodları Değerlendirme Soruları 335
335
335
336
337
338
338
339
340
341
344
348
348
349
350
350
351
352
353
355
17 STRING SINIFI İLE METİNLER ÜZERİNDE ÇALIŞMA String Sınıfına Giriş String Nesnesinin Uzunluğu Karakter Katarlarını Birleştirmek + Operatörü ile Strıng İfadeleri Birleştirme Concat Metodu ile String İfadeleri Birleştirme String Nesnelerini Karşılaştırma equals ve equalsIgnoreCase Metodları ile String Nesneleri Karşılaştırma compareTo ve compareToIgnoreCase Metodları ile Büyüklük Kontrolü regionMatches Metodu ile Belirli Bir Bölgenin Karşılaştırılması startsWith ve endsWith Metodları ile Başlangıç ve Bitiş Kontrolü Karakter Metodları getChars Metodu ile String İçerisindeki Bir Bölümü Diziye Aktarma charAt Metodu ile String İçerisindeki Karaktere Ulaşmak 357
357
358
359
359
360
361
361
363
365
366
368
368
369
XIII
XIV
YENİ BAŞLAYANLAR İÇİN JAVA
toCharArray Metodu ile String Nesneyi Karakter Dizine Dönüştürme indexOf ve lastIndexOf Metodları ile String İçerisinde Karakter Arama String Düzenleme Metodları substring Metodu ile String İçerisinden Bir Bölüm Seçme replace Metodu ile String İçerisindeki Karakteri Değiştirme trim Metodu ile String İfadenin Yanındaki Boşlukları Silme toUpperCase ve toLowerCase Metodları ile Harf Kipini Değiştirme valueOf Metodu ile Veri Tiplerini String Veri Tipine Çevirme StringTokenizer ve StringBuffer Sınıfları StringTokenizer Sınıfını Kullanarak Metni Parçalama StringBuffer Sınıfı ile Bazı Metin İşlemleri Değerlendirme Soruları 370
371
373
373
374
375
376
376
378
378
384
387
18 HATA YAKALAMA (EXCEPTION HANDLING) Exceptions (İstisnalar) Hata Yakalama (try-catch blokları) Hata Yakalamada Yeni Catch Bloğu Sistemi finally Bloğu Hata Yakalamada Finally Bloğunun Alternatifi Finally Bloğunda try-catch Kullanımı Birden Fazla Hata Yakalama throw Anahtar Kelimesi throws Anahtar Kelimesi Exception Türü Oluşturma Hata Türleri RuntimeException Hata Türü Çözülemeyen Hatalar (Error) Değerlendirme Soruları 389
389
390
396
398
399
401
402
404
405
410
412
414
414
416
19 GİRİŞ ÇIKIŞ (IO) İŞLEMLERİ I/O Kavramına Giriş Karakter Tabanlı Veri Taşıma Byte Tabanlı Veri Taşıma File Sınıfının Kullanımı createNewFile Metodu ile Dosya Oluşturma getName Metodu ile Dosyanın Adını Öğrenme getAbsolutePath Metodu ile Dosyanın Yolunu Öğrenme delete Metodu ile Dosyayı Silme 417
417
418
419
420
421
421
422
422
İÇİNDEKİLER
mkdir Metodu ile Klasör Oluşturma renameTo Metodu ile Dosyanın Adını Değiştirme canRead ve canWrite Metodları ile Yazma Okuma Kontrolü FileReader ile Dosya Okuma FileWriter ile Dosyaya Yazma FileInputStream ile Dosya Okuma FileOutputStream ile Dosyaya Yazma BufferedReader ile Dosyadan Okuma BufferedWriter ile Dosyaya Yazma BufferedInputStream ile Dosya Okuma BufferedOutputStream ile Dosyaya Yazma Scanner Sınıfı ile Dosya Okuma Scanner Sınıfı Yapıcıları Rastgele Erişimli Dosyalarda Okuma ve Yazma Object Serialization (Nesne Serileştirme) Serializable Arayüzü Externalizable Arayüzü Transient Anahtar Kelimesi Değerlendirme Soruları 423
423
424
426
428
431
433
434
436
437
438
439
443
444
448
448
452
457
458
20 JAVA KOLEKSİYONLARI (JAVA COLLECTIONS) 461
Koleksiyonlara Giriş 461
Java Koleksiyonlarının Avantajları 461
Java Koleksiyonlarının Dezavantajları 462
Collection Arayüzü 462
Iterator 463
Set (Kümeler) 464
HashSet 465
LinkedHashSet 468
Sorted Set 469
TreeSet 469
Liste Yapıları (Lıst) 472
ListIterator 472
ArrayList 473
LinkedList (Bağlı Liste) 476
Vector 480
Queue (Kuyruk) 481
Map Arayüzü 482
XV
XVI
YENİ BAŞLAYANLAR İÇİN JAVA
HashMap 483
LinkedHashMap 486
SortedMap 487
TreeMap 487
Elmas Operatör İçerisindeki Tanım Zorunluluğu 490
SafeVarags ile Uyarı ve Hata Giderimi 491
Değerlendirme Soruları 493
21 OLAY YÖNETİMİ (EVENT HANDLING) 495
Olay Yönetimine Giriş 495
Olay Sınıfları 496
ActionEvent 497
AdjustmentEvent 497
ComponentEvent 498
ContainerEvent 499
FocusEvent 500
InputEvent 500
ItemEvent 501
KeyEvent 502
MouseEvent 503
MouseWheelEvent 505
TextEvent 506
WindowEvent 506
Olay Dinleyicileri (Event Listeners) 507
ActionListener 507
AdjustmentListener 508
ComponentListener 508
ContainerListener 508
FocusListener 508
ItemListener 509
KeyListener 509
MouseListener 509
MouseMotionListener 509
MouseWheelListener 510
TextListener 510
WindowFocusedListener 510
WindowListener 510
Fare ve Klavye Olay Metodlarının Kullanımı 511
Değerlendirme Soruları 516
İÇİNDEKİLER
22 JAVA GUI İLE ARAYÜZ PROGRAMLAMA 517
GUI (Graphical User Interface) Nedir? 517
GUI Kurulumu 517
GUI Projesi Oluşturma 520
SWING 523
SWING Bileşenleri 523
JFrame 524
Container 526
JLabel 528
JButton 531
JTextField 533
JComboBox 536
JRadioButton 538
JCheckBox 541
JToggleButton 544
JTable 546
JList 549
JScrollPane 552
JTabbedPane 555
JTree 557
Layout (Yerleşim Düzenleri) 561
GridLayout 561
BorderLayout 562
FlowLayout 563
GridBagLayout 564
Diğer Layout Tipleri 565
Değerlendirme Soruları 566
23 JDBC İLE VERİTABANI Veritabanı Kavramına Giriş Veritabanı Yönetim Sistemleri (VTYS) JDBC Tanımı Temel SQL Komutları SELECT-WHERE-LIKE Komutlarının Kullanımı INSERT Komutu ile Kayıt Ekleme DELETE Komutu ile Kayıt Silme UPDATE Komutu ile Kayıt Güncelleme MySQL Kurulumu 567
567
569
570
570
571
572
573
573
574
XVII
XVIII
YENİ BAŞLAYANLAR İÇİN JAVA
MySQL için JDBC Connector 583
JDBC Bileşenleri 584
Connection 585
Statement Bileşenleri 586
Statement 586
PreparedStatement 587
CallableStatement 588
ResultSet 590
JDBC ile Veri Sorgulama 591
JDBC ile Veritabanına Veri Ekleme 594
JDBC ile Veritabanından Veri Silme 596
JDBC ile Veritabanındaki Verileri Güncelleme 597
Navicat Kurulumu 598
Navicat ile Örnek Uygulama 602
Değerlendirme Soruları 615
24 THREAD KAVRAMI 617
Thread Kavramına Giriş 617
Thread Oluşturma 618
Thread’i Başlatmak ve Durdurmak 622
Thread’i Beklemeye Almak ve Devam Ettirmek 625
Bir Thread Nesnesine Öncelik Atamak 626
Thread’in Çalışıp Çalışmadığının Kontrolü 629
MultiThreading 631
Thread’lerin Senkronizasyonunu Sağlamak 631
Değerlendirme Soruları 634
25 JAVA SE 8 İLE GELEN YENİLİKLER 635
Lambda İfadeleri 635
Fonksiyonel Arayüzler ve Lambda İfadeleri 638
Varsayılan Metotlar 640
Metot Çakışması 642
DateTime API 643
LocalDate 643
LocalTime 644
LocalDateTime 644
ZoneId ve ZonedDateTime 644
CEVAP ANAHTARI 647
Download