Java
من أول برنامج حتى البرمجة كائنية التوجه وهياكل البيانات
المسار الأساسي في Pro Lab: المتغيرات، الشروط، الحلقات، المصفوفات، الدوال، ثم الكلاسات والوراثة والواجهات والمجموعات — مع ربط مباشر بالاختبارات والتحديات العملية.
- عدد الدروس: 46
- عدد الفصول: 6
- بالعربية والإنجليزية
تقدّمك
محتوى التوثيق
الدروس مرتّبة من الأساس إلى المتقدّم. اقرأها بالترتيب أو اقفز إلى ما تحتاجه.
الفصل 1
البداية
- 1مقدمة إلى Javaتعرّف على لغة Java: ما هي، وأين تُستخدم، وكيف يعمل برنامج Java على أي جهاز بفضل آلة Java الافتراضية (JVM).
- 2البدء مع Javaثبّت مجموعة التطوير JDK، واكتب أول برنامج لك في الملف Main.java، ثم ترجمه بالأمر javac وشغّله بالأمر java.
- 3قواعد كتابة Javaافهم بنية برنامج Java سطرًا بسطر: الصنف (Class)، والدالة الرئيسية main، والتعليمات، والفاصلة المنقوطة، والأقواس المعقوصة.
- 4طباعة المخرجاتاطبع النصوص والأرقام باستخدام println() وprint()، ونسّق مخرجاتك بإتقان باستخدام printf().
- 5التعليقاتاستخدم التعليقات أحادية السطر ومتعددة الأسطر وتعليقات التوثيق لشرح الكود وتسهيل قراءته.
الفصل 2
المتغيرات وأنواع البيانات
- 6المتغيراتتعلّم كيف تُنشئ المتغيرات لتخزين البيانات، وتغيّر قيمها، وتستخدم الثوابت مع final، وتسمّي متغيراتك بطريقة صحيحة.
- 7أنواع البياناتتعرّف على أنواع البيانات الأولية الثمانية في Java وأحجامها ونطاقاتها، وعلى الفرق بينها وبين الأنواع المرجعية مثل String.
- 8تحويل الأنواعحوّل القيم بين الأنواع الأولية: التحويل التلقائي إلى نوع أوسع (Widening)، والتحويل اليدوي إلى نوع أضيق (Narrowing) باستخدام (type).
- 9العواملاستخدم العوامل الحسابية وعوامل الإسناد والمقارنة والعوامل المنطقية، وتجنّب أخطاء القسمة الصحيحة وباقي القسمة % الشائعة.
- 10النصوص (Strings)تعامل مع النصوص في Java: الطول، وتحويل حالة الأحرف، وindexOf وcharAt وsubstring، ودمج النصوص، والمقارنة باستخدام equals()، والأحرف الخاصة.
- 11الرياضيات (Math)استخدم الصنف الجاهز Math لإيجاد القيم الكبرى والصغرى، والجذور التربيعية، والأسس، والقيم المطلقة، والتقريب، والأرقام العشوائية.
- 12القيم المنطقية (Booleans)خزّن قيم الصواب والخطأ باستخدام boolean، وكوّن تعبيرات منطقية بعوامل المقارنة، واجمع الشروط باستخدام && و|| و!.
- 13إدخال المستخدم (Scanner)اقرأ النصوص والأرقام من لوحة المفاتيح باستخدام الصنف Scanner، وتجنّب الخطأ الشهير عند استخدام nextInt() ثم nextLine().
الفصل 3
التحكم في التدفق
- 14الجمل الشرطية if...elseاجعل برامجك تتخذ القرارات باستخدام if وelse وelse if، والعوامل المنطقية، والعامل الثلاثي المختصر.
- 15جملة switchاختر كتلة واحدة من بين كتل كثيرة باستخدام switch: بالصيغة الكلاسيكية مع case وbreak، وبالصيغة الحديثة ذات السهم المتوفرة منذ Java 14.
- 16حلقة whileكرّر تنفيذ الكود ما دام الشرط صحيحًا باستخدام حلقة while، ونفّذه مرة واحدة على الأقل باستخدام do/while.
- 17حلقة forكرّر الكود عددًا معروفًا من المرات باستخدام حلقة for، وضع الحلقات داخل بعضها، ومرّ على عناصر المصفوفات باستخدام for-each.
- 18التحكم في الحلقات: break و continueأوقف الحلقة مبكرًا باستخدام break، وتخطَّ الدورة الحالية باستخدام continue، واخرج من الحلقات المتداخلة باستخدام التسميات (Labels).
الفصل 4
المصفوفات والدوال
- 19المصفوفاتخزّن قيمًا كثيرة في متغيّر واحد باستخدام المصفوفات: أنشئها، واقرأ عناصرها وعدّلها، ومرّ عليها بالحلقات، واستخدم Arrays.toString() وArrays.sort().
- 20المصفوفات متعددة الأبعادخزّن البيانات في صفوف وأعمدة باستخدام المصفوفات ثنائية الأبعاد، واقرأ عناصرها بالصيغة [row][column]، ومرّ عليها بالحلقات المتداخلة.
- 21الدوال (Methods)أنشئ دوالك الخاصة لتنظيم الكود في كتل قابلة لإعادة الاستخدام، واستدعِها من main، وافهم معنى static وvoid.
- 22معاملات الدوال (Parameters)مرّر المعلومات إلى الدوال عبر المعاملات، واستخدم أكثر من معامل، وأعد النتائج باستخدام return.
- 23التحميل الزائد للدوالعرّف عدة دوال بالاسم نفسه ولكن بمعاملات مختلفة، ودع Java تختار الدالة المناسبة بحسب الوسائط.
- 24نطاق المتغيرات (Scope)افهم أين يمكن استخدام المتغيّر: نطاق الدالة، ونطاق الكتلة، ونطاق الحلقة، ولماذا تملك كل دالة متغيراتها الخاصة.
- 25الاستدعاء الذاتي (Recursion)تعلّم كيف تستدعي الدالة نفسها، ولماذا تحتاج كل دالة ذاتية الاستدعاء إلى حالة أساسية، وحُلّ مسائل المجموع والمضروب بالاستدعاء الذاتي.
الفصل 5
البرمجة كائنية التوجه
- 26البرمجة كائنية التوجه (OOP)تعرّف على البرمجة كائنية التوجه، ولماذا بُنيت Java على أساسها، والعلاقة بين الصنف والكائن، والركائز الأربع التي ستتقنها في هذا الفصل.
- 27الأصناف والكائناتأنشئ صنفك الأول، وابنِ منه كائنات باستخدام الكلمة المفتاحية new، وتعامل مع عدة كائنات، ونظّم الكود في أكثر من صنف.
- 28خصائص الصنف (Attributes)تعلّم كيف تعرّف خصائص الصنف، وتقرأ قيمها وتعدّلها عبر الكائنات، وتعرف قيمها الافتراضية، وتحميها من التغيير باستخدام final.
- 29دوال الصنف (Methods)عرّف الدوال داخل الصنف، وافهم الفرق بين الدوال الساكنة static ودوال الكائن، واستدعِ الدوال على الكائنات لتعمل على بياناتها.
- 30المُنشئات (Constructors)استخدم المُنشئات لتهيئة الكائنات: المُنشئ الافتراضي، والمُنشئ ذو المعاملات، والكلمة this، وتعدد المُنشئات، والربط بينها باستخدام this(...).
- 31المُعدِّلات (Modifiers)تحكّم في من يستطيع الوصول إلى أصنافك وخصائصك ودوالك باستخدام مُعدِّلات الوصول، وأضف سلوكًا خاصًا بالمُعدِّلات الأخرى مثل static وfinal وabstract.
- 32التغليف (Encapsulation)احمِ بياناتك بجعل الخصائص private، وإتاحة دوال جلب وتعيين public آمنة تتحقق من صحة كل تغيير.
- 33الوراثة (Inheritance)أعد استخدام الكود بجعل صنف يرث خصائص صنف آخر ودواله باستخدام extends، واستدعِ الصنف الأب بـ super، وأعد تعريف الدوال، وامنع الوراثة بـ final.
- 34تعدد الأشكال (Polymorphism)اكتشف كيف يتصرف استدعاء واحد بأشكال متعددة: إعادة تعريف الدوال، والتحويل إلى الأعلى، والربط الديناميكي وقت التشغيل، والمصفوفات التي تجمع أصنافًا مختلفة تحت نوع أب واحد.
- 35التجريد (Abstraction)أخفِ تفاصيل التنفيذ وأظهر ما يهم فقط، باستخدام الأصناف المجردة والدوال المجردة التي يجب على الأصناف الابنة إكمالها.
- 36الواجهات (Interfaces)عرّف عقودًا برمجية بالواجهات، وطبّقها باستخدام implements، واجمع أكثر من واجهة في صنف واحد، وأضف إليها دوالًا افتراضية.
- 37التعدادات (Enums)مثّل مجموعة ثابتة من القيم باستخدام enum، واستخدمها في جمل switch، ومرّ عليها بحلقة عبر values()، وأضف إليها خصائصها الخاصة.
الفصل 6
هياكل البيانات وJava المتقدمة
- 38الاستثناءات (Exceptions)تعامل مع أخطاء وقت التشغيل باحترافية باستخدام try وcatch وfinally، والتقط أكثر من نوع استثناء، وارمِ أخطاءك بنفسك بـ throw، وأنشئ استثناءات خاصة بك.
- 39الأصناف المُغلِّفة (Wrapper Classes)استخدم القيم البدائية ككائنات عبر الأصناف المُغلِّفة مثل Integer وDouble، وافهم التغليف التلقائي وفكّه، وحوّل النصوص إلى أرقام بدوال التحليل.
- 40القائمة ArrayListخزّن عددًا مرنًا من العناصر باستخدام ArrayList: أضف العناصر واقرأها وعدّلها واحذفها، واعرف حجم القائمة، ومرّ عليها بحلقة، ورتّبها.
- 41القائمة LinkedListتعرّف على الفرق بين LinkedList وArrayList، ومتى تختار كلًّا منهما، وكيف تستخدم addFirst() وaddLast() وremoveFirst() والدوال المشابهة.
- 42الخريطة HashMapخزّن البيانات على شكل أزواج مفتاح وقيمة باستخدام HashMap: أضف المدخلات واقرأها وحدّثها واحذفها، وتحقق من وجود المفاتيح، ومرّ عليها بـ keySet() وvalues() وentrySet().
- 43المجموعة HashSetاحتفظ بمجموعة من العناصر الفريدة باستخدام HashSet: أضف العناصر وتحقق من وجودها واحذفها، وتخلّص من التكرار في بياناتك بخطوة واحدة.
- 44المُكرِّر (Iterator)مرّ على عناصر أي مجموعة باستخدام المُكرِّر Iterator ودالتيه hasNext() وnext()، واحذف العناصر بأمان أثناء المرور عليها.
- 45الأنواع العامة (Generics)اكتب كودًا مرنًا وآمنًا من حيث الأنواع باستخدام الأنواع العامة: أنشئ صنفًا عامًا مثل Box<T>، واكتب دوالًا عامة، وقيّد الأنواع المسموح بها.
- 46تعبيرات لامدا (Lambda)اكتب دوالّ قصيرة بلا أسماء باستخدام تعبيرات لامدا، واستخدمها مع forEach() وremoveIf() وsort()، وخزّنها في واجهات وظيفية.