
1:02:12
كورس C# OOP منحة ITI شرح م احمد ممدوح #3
Syntax Error
Overview
يتناول هذا الفيديو شرح المفاهيم الأساسية للبرمجة كائنية التوجه (OOP) في C#، مع التركيز على كيفية إنشاء الكائنات (objects) والتعامل مع أعضائها (members) مثل المتغيرات والدوال. يوضح الفيديو أهمية مبادئ التغليف (Encapsulation) والتجريد (Abstraction) وكيفية التحكم في ظهور (visibility) أعضاء الكلاس باستخدام معدلات الوصول (access modifiers) مثل public و private. كما يتطرق إلى كيفية إنشاء دوال مساعدة (getter و setter) للتحكم في الوصول إلى البيانات الخاصة، مع تقديم أمثلة عملية لتوضيح هذه المفاهيم.
How was this?
Save this permanently with flashcards, quizzes, and AI chat
Chapters
- الكائن (object) هو نسخة من الكلاس ويحمل القيم والبيانات.
- يمكن الوصول إلى أعضاء الكلاس (المتغيرات والدوال) من داخل الكلاس أو من خارجه.
- كل كائن يتم إنشاؤه من نفس الكلاس يحمل نفس الصفات ولكن بقيم قد تختلف.
- يمكن إنشاء عدة كائنات من نفس الكلاس، وكل كائن له نسخته الخاصة من المتغيرات.
فهم كيفية إنشاء الكائنات والتعامل مع أعضائها هو أساس بناء البرامج باستخدام البرمجة كائنية التوجه، حيث يتيح لك تمثيل كيانات العالم الحقيقي في برنامجك.
إنشاء كائنين من كلاس `Car`، حيث يمثل كل كائن سيارة مختلفة يمكن الوصول إلى خصائصها مثل `price` و `number` وتعديلها بشكل مستقل.
- التجريد يخفي التفاصيل المعقدة عن المستخدم ويركز على الوظائف الأساسية.
- الخصوصية (Privacy) تمنع الوصول المباشر إلى بعض البيانات أو الدوال لأسباب تتعلق بالأمان أو لتبسيط الاستخدام.
- في الحياة الواقعية، نخفي تفاصيل لا تهمنا (مثل آلية عمل السيارة) ونركز على ما يهمنا (مثل قيادة السيارة).
- نحتاج إلى تطبيق هذه المبادئ في البرمجة لحماية البيانات وتبسيط التعامل مع الكائنات.
تساعد مبادئ التجريد والخصوصية في بناء برامج أكثر أمانًا وسهولة في الاستخدام والصيانة، حيث يتم إخفاء التعقيدات غير الضرورية عن المبرمج الذي يستخدم الكلاس.
مثال حساب فيسبوك: يمكن مشاركة البريد الإلكتروني (public) ولكن لا يمكن مشاركة كلمة المرور (private) لحمايتها.
- معدلات الوصول (Access Modifiers) تحدد مدى إمكانية الوصول إلى أعضاء الكلاس.
- `public`: يمكن الوصول إلى العضو من أي مكان داخل البرنامج.
- `private`: لا يمكن الوصول إلى العضو إلا من داخل الكلاس نفسه.
- إذا لم يتم تحديد معدل وصول، يعتبر العضو `private` افتراضيًا.
تتيح لك معدلات الوصول التحكم الدقيق في كيفية تفاعل الأجزاء المختلفة من برنامجك مع الكلاسات، مما يعزز الأمان ويمنع التعديلات غير المقصودة.
جعل متغير `number` في كلاس `Car` كـ `private` يمنع تعديله مباشرة من خارج الكلاس، بينما يمكن تعديل `price` إذا كان `public`.
- التغليف هو مبدأ يجمع البيانات (المتغيرات) والوظائف التي تعمل عليها (الدوال) داخل وحدة واحدة (الكلاس)، مع التحكم في إمكانية الوصول إليها.
- عندما يكون عضو `private`، يمكن الوصول إليه بشكل غير مباشر عبر دوال `public` تُعرف بـ Getters (لجلب القيمة) و Setters (لتعيين القيمة).
- دوال الـ Setter تسمح بتطبيق منطق عمل (business logic) للتحقق من صحة البيانات قبل تخزينها.
- دوال الـ Getter تسمح بتوفير طريقة آمنة لقراءة البيانات الخاصة دون كشفها مباشرة.
التغليف باستخدام Getters و Setters يوفر تحكمًا أكبر في البيانات، ويسمح بتطبيق قواعد العمل، ويجعل الكود أكثر مرونة وقابلية للصيانة.
جعل متغير `price` في كلاس `Car` كـ `private`، وإنشاء دالة `setPrice(int newPrice)` تتحقق إذا كان السعر الجديد أكبر من أو يساوي 5000 قبل تعيينه، ودالة `getPrice()` لإرجاع قيمة السعر.
- التجريد يركز على تحديد ما يجب أن يفعله الكائن وما هي واجهته الخارجية (ماذا يقدم للمستخدم).
- التغليف يركز على كيفية تنفيذ هذه الوظائف وإخفاء التفاصيل الداخلية (كيف يعمل).
- التجريد يقرر ما إذا كانت الخاصية موجودة في التصميم أم لا، بينما التغليف يقرر ما إذا كانت الخاصية مخفية أم ظاهرة.
- كلاهما يهدف إلى تبسيط التعامل مع الكائنات وإدارة التعقيد.
فهم الفرق بين هذين المبدأين يساعد في تصميم كلاسات وهياكل برمجية فعالة ومنظمة بشكل أفضل.
التجريد: تحديد أن السيارة لها خاصية 'عدد المقاعد'. التغليف: إخفاء كيفية حساب عدد المقاعد المتاحة فعليًا (مثلاً، مع الأخذ في الاعتبار مقاعد الأطفال) وجعلها متاحة فقط عبر دالة `getAvailableSeats()`.
- طريقة حديثة ومبسطة لعرض النصوص مع قيم المتغيرات في C#.
- يتم استخدام علامة الدولار `$` قبل علامات التنصيص لإنشاء interpolated string.
- يمكن تضمين أسماء المتغيرات مباشرة داخل النص باستخدام الأقواس المعقوفة `{}`.
- هذه الطريقة أسهل للقراءة وأقل عرضة للأخطاء مقارنة بالطرق القديمة.
تسهل هذه الطريقة عملية تنسيق وعرض البيانات، مما يجعل الكود أكثر وضوحًا وسهولة في القراءة والصيانة.
عرض معلومات السيارة باستخدام `Console.WriteLine($"Number: {number}, Price: {price}
Key takeaways
- الكائنات هي أساس البرمجة كائنية التوجه، حيث تمثل كيانات العالم الحقيقي.
- التحكم في ظهور أعضاء الكلاس (public/private) ضروري لحماية البيانات وتبسيط الاستخدام.
- التغليف (Encapsulation) يجمع البيانات والدوال معًا ويتحكم في الوصول إليها، مما يعزز الأمان.
- دوال Getter و Setter توفر وسيلة آمنة للوصول إلى البيانات الخاصة وتطبيق منطق العمل.
- التجريد (Abstraction) يخفي التفاصيل غير الضرورية ويركز على الوظائف الأساسية.
- يجب تصميم الكلاسات والدوال للتركيز على موضوع واحد لزيادة الوضوح وقابلية الصيانة.
- استخدام Interpolated Strings يجعل عرض النصوص والمتغيرات أسهل وأكثر وضوحًا.
Key terms
Object-Oriented Programming (OOP)ObjectClassMemberVariableFunctionAbstractionEncapsulationAccess ModifierPublicPrivateGetterSetterInterpolated String
Test your understanding
- ما هو الفرق الرئيسي بين الكائن (object) والكلاس (class)؟
- لماذا نحتاج إلى استخدام معدلات الوصول مثل public و private عند تصميم الكلاسات؟
- كيف يساهم مبدأ التغليف (Encapsulation) في جعل البرامج أكثر أمانًا؟
- اشرح كيف يمكن لدالة private member أن يتم الوصول إليها بشكل غير مباشر من خارج الكلاس.
- ما هي الفائدة من استخدام Interpolated Strings عند عرض البيانات في C#؟