Faz 2 – Programlama Nesne Yönelimli (2–3 ay)
Sınıflar, Nesneler, Öznitelikler ve Metotlar
- Sınıf yapısı
- Nesne oluşturma
- this kullanımı
- En iyi uygulamalar: isimlendirme, kod organizasyonu
Kapsülleme, Kalıtım, Çok Biçimlilik ve Soyutlama
- Encapsulation: private, getters/setters, doğrulama
- Inheritance: extends, overriding (@Override)
- Polymorphism: alt tip, method overloading
- Abstraction: genel bakış, arayüzler ve soyut sınıflar için hazırlık
Arayüzler ve Soyut Sınıflar
- Interfaces: implements, default methods
- Abstract classes: soyut ve somut metotlar
- Arayüz ve soyut sınıf arasındaki farklar
Kurucular, Başlatıcılar ve Statik Bloklar
- Varsayılan ve parametreli kurucular, this() ile çağrılar
- Başlatma blokları ({}) ve statik bloklar (static {})
Sabitler (Enumerations)
- enum oluşturma ve kullanma
- Enum’larda metotlar ve öznitelikler
Temel Koleksiyonlar
- ArrayList: ekleme, kaldırma, yineleme (for, forEach, Iterator)
- HashMap: anahtar-değer, yaygın işlemler
- HashSet: yinelenenleri eleme
- Queue ve Stack’e giriş (ör. LinkedList queue/stack olarak)
- Java Collections Framework’e giriş
Temel Algoritmalar
- Doğrusal ve ikili arama
- Sorting: Bubble Sort, Collections.sort()
- Recursion: kavramlar ve basit örnekler (ör. faktöriyel, Fibonacci)
- Karmaşıklığa giriş (O(n), O(log n))
Jenerikler (Generics)
- Sözdizimi (), jenerik koleksiyonlar, jenerik metotlar
- Sınırlar (extends, super)
Stream API (Giriş)
- Temel işlemler: filter, map, collect
- ArrayList ile örnekler
Birim Testi (Giriş)
- JUnit’in temel kullanımı
- Sınıflar ve metotlar için test senaryoları yazma
- TDD’ye giriş (Test-Driven Development)
Final Projesi
- Kütüphane Sistemi
- Sınıflar: Book, User, Library
- Kalıtım: DigitalBook ve PhysicalBook
- Koleksiyonlar: Kitaplar için ArrayList, ödünçler için HashMap
- Kapsülleme: veri doğrulama
- Git: özellik başına commit (ör.
feature/book-management
)
- Açıklayıcı README ile GitHub’da yayınla
Güncellenmiş Kaynaklar