Nesne Yönelimli Programlama (Java)
Kalıtım, çok biçimlilik, istisnalar, dosyalar, özyineleme ve generics.
Kaynak kitap: Paul Deitel, Harvey Deitel, Java: How to Program, Pearson, ISBN-10: 0132575663
- 1. haftaClasses and Objects
- Sınıflar ve nesneler: tekrarAlan, constructor, this, kapsülleme, static ve instance farkı, toString ve equals. Dönemin geri kalanı bu temelin üstüne kurulur.
- 2. haftaInheritance
- Kalıtım: extends, super ve constructor zinciriAlt sınıf üst sınıftan ne alır, constructor'lar hangi sırayla çalışır, overriding ile overloading farkı. Çıktı sorularının favorisi.
- 3. haftaPolymorphism
- Çok biçimlilik: dynamic binding, upcasting, downcastingÜst sınıf tipindeki değişken alt sınıf nesnesini tutunca hangi metot çalışır, neyi derleyici kabul eder, cast ne zaman patlar.
- 4. haftaPolymorphism II: Abstract Classes and Interfaces
- Abstract sınıflar ve arayüzler (interface)abstract metot, interface, default metot, birden fazla arayüz ve Comparable ile sıralama. Derleme hatası sorularının ana kaynağı.
- 5. haftaGUI Components
- GUI bileşenleri: JFrame, JLabel, JTextField, JButton ve layout'larSwing ile pencere kurmak: bileşenler, içerik paneli ve FlowLayout, BorderLayout, GridLayout. Sınavda kod okuma ve 'hangi layout' soruları.
- 6. haftaGUI and Event-driven Programming
- Olay güdümlü programlama: listener, anonim sınıf, lambdaButona tıklanınca ne olur: olay kaynağı, listener arayüzü, kayıt, getSource ve handler'ı iç sınıf, anonim sınıf ya da lambda ile yazmak.
- 7. haftaCase Study: Object Oriented Design with the UML
- UML ile nesne yönelimli tasarımSınıf diyagramı okumak ve yazmak: görünürlük işaretleri, ilişki okları, çokluk, aggregation ve composition farkı, gereksinim metninden sınıflara geçiş.
- 8. haftaStrings, Characters and Regular Expressions
- String, StringBuilder, Character ve düzenli ifadelerString metotları ve değişmezlik, StringBuilder ile değiştirilebilir metin, Character sınıfı ve regex ile doğrulama, split, replaceAll. Kısa çıktı sorularıyla dolu bir konu.
- 9. haftaException Handling
- İstisna yönetimi: try, catch, finally, throw, throwsHata olunca kontrol nereye gider, finally ne zaman çalışır, checked ve unchecked farkı, kendi istisna sınıfını yazmak. Çıktı izleme sorularının en sevileni.
- 10. haftaMidterm Review
- Vize tekrar: 1-9. haftalar karışıkSınıflardan istisnalara kadar vizeye giren her konunun tek sayfalık özeti ve konuları birbirine karıştıran 12 sınav tipi soru.
- 11. haftaFiles and Streams, Object Serialization
- Dosyalar, akışlar ve nesne serileştirmeFiles ve Path ile dosya işlemleri, Scanner ile okuma, PrintWriter ve Formatter ile yazma, try-with-resources ve nesneleri ObjectOutputStream ile kaydetmek.
- 12. haftaRecursion
- Özyineleme (recursion)Kendini çağıran metotlar: base case, recursive step, çağrı yığınını izlemek ve faktöriyel, Fibonacci, üs alma, palindrom, ikili arama. Çıktı izleme sorularının ikinci büyük kaynağı.
- 13. haftaSearching and Sorting (Selection, Insertion, Merge Sort)
- Arama ve sıralama: linear, binary, selection, insertion, merge sortİki arama ve üç sıralama algoritması, her geçişten sonra dizinin hali ve Big-O karşılaştırması. Sınavda 'pass 2'den sonra dizi ne olur' soruları gelir.
- 14. haftaGeneric Classes and Methods
- Generics: generic metotlar, generic sınıflar, wildcardTipi parametre olarak alan metot ve sınıflar: <T>, sınırlı tipler (T extends Comparable<T>), ArrayList<T> ve wildcard'lara giriş. Derleme hatası sorularının son büyük kaynağı.