المرحلة 2 – البرمجة كائنية التوجه (2-3 أشهر)
الفئات، الكائنات، السمات، والدوال
- هيكلية الفئة
- إنشاء الكائنات
- استخدام this
- أفضل الممارسات: التسمية، تنظيم الكود
التغليف، الوراثة، التعددية، والتجريد
- Encapsulation: private, getters/setters, التحقق
- Inheritance: extends, overriding (@Override)
- Polymorphism: نوع فرعي، method overloading
- Abstraction: نظرة عامة، التحضير للـ interfaces والـ abstract classes
الواجهات والفئات التجريدية
- Interfaces: implements, default methods
- Abstract classes: الدوال التجريدية والملموسة
- الفروق بين interface و abstract class
المُنشئات، المُهيئات، والكتل الثابتة
- المُنشئات الافتراضية والمُمنهجة، الاستدعاء باستخدام this()
- كتل التهيئة ({}) والكتل الثابتة (static {})
التعدادات
- إنشاء واستخدام enum
- الدوال والسمات في enums
المجموعات الأساسية
- ArrayList: الإضافة، الحذف، التكرار (for, forEach, Iterator)
- HashMap: مفتاح-قيمة، العمليات الشائعة
- HashSet: إزالة التكرارات
- مقدمة إلى Queue و Stack (مثال: LinkedList كـ queue/stack)
- مقدمة إلى Java Collections Framework
الخوارزميات الأساسية
- البحث الخطي والبحث الثنائي
- Sorting: Bubble Sort, Collections.sort()
- Recursion: المفاهيم وأمثلة بسيطة (مثال: العاملية، فيبوناتشي)
- مقدمة إلى التعقيد (O(n), O(log n))
الجينيريكس
- الصيغة ()، المجموعات الجينيريك، الدوال الجينيريك
- الحدود (extends, super)
Stream API (مقدمة)
- العمليات الأساسية: filter, map, collect
- أمثلة مع ArrayList
الاختبارات الوحدية (مقدمة)
- الاستخدام الأساسي لـ JUnit
- كتابة حالات الاختبار للفئات والدوال
- مقدمة إلى TDD (Test-Driven Development)
المشروع النهائي
- نظام المكتبة
- الفئات: Book, User, Library
- الوراثة: DigitalBook و PhysicalBook
- المجموعات: ArrayList للكتب، HashMap للإعارات
- Encapsulation: التحقق من البيانات
- Git: commit لكل ميزة (مثال:
feature/book-management
)
- النشر على GitHub مع README توضيحي
الموارد المحدثة