بسم الله الرحمن الرحيم
والصلاة والسلام على سيدنا
محمد صل الله عليه وسلم
النهارده إن شاء الله هنتكلم عن ال OOP .
اولاً: ما هو ال OOP :
هو اختصار ل object oriented programming وهوعباره عن طريقه لتنظيم
الكود ولسهولة التعامل معه .
وسمات ال OOP ثلاث :
1- Encapsulation
2- Inheritance
3- Polymorphism
-
Encapsulation: وهى عباره عن تجميع الاشياء التى لها نفس الصفات وتؤدى نفس الوظائف ووضعها
فى Class واحد ، وزى ما شرحنا فى عمل ال Class ان الصفات هى ال properties وان الوظائف هى ال methods والجزء ده احنا شرحناه فى شرح ال class وشرح ال method بس هنا مهم
نعرف اسم ال Concept نفسه.
-
Inheritance: وده بقه
معناه التوريث ، يعنى ايه توريث ؟ اولاً لازم يكون فيه parent class وهو بمثابة الclass الأب اللى هيورّث كل صفاته ووظائفه ل child classes وال Classes ديه كأنها أبناء هذا ال Class الأب .
علاقه ال inheritance بتكون is a
relationship بمعنى مثلا لما اقول Ahmed
is a male يبقى كده احمد هو ال Child و male هو ال parent.
n
مميزات
خاصية ال inheritance :
1-
طبعاً
بتوفر علينا كتابة كود كتير يعنى لما نعمل class ونلاقى ان صفاته ووظائفه زى class تاني موجود واحنا عملناه قبله يبقى نستخدم
ال inheritance وهى هتوفر علينا كتابه كود ال class التاني.
2-
Reusing code وده معناه انها زى ما بتوفر فى كتابه الكود
برده بتعلمنا اننا نعمل reusing للكود اللى احنا عملينه اصلا وتخلينا نستخدمه اكتر من مره.
n
إزاى بنقدر
نستخدم خاصية ال inheritance ؟ طبعا احنا الاول اللى بنحدد ايه اللى نستخدم فيه inheritance وايه اللى مش ضرورى
وده مثال على استخدام ال inheritance :
اولاً: ده شكل ال class ال parent وفى المثال ده انا سميت ال class برده parent:
-
Parent class عبارة عن class عاديه بنكتب
فيها ال properties
وال methods اللى احنا عايزينه .
ثانياً: ده شكل ال child class
-
وزى ما احنا واخدين بالنا هنلاقى فى الصورة
كلمه extends
وبالكلمه ديه كأنى بالظبط خدت كل ال properties and methods بتاعت ال parent
class ووضعتها فى ال child class ، وبنكتب جنب كلمه extends
اسم ال class
اللى عايزين نورث منها.
-
فى الصورة السابقه انا مش كاتب اى كود داخل
ال child class
ومع ذلك لو خدت منه object
هلاقى جواة الحاجات بتاعت ال parent class كما فى الصورة التاليه :
-
هنلاقى x ,y ومكتوب
جنبهم parent
يعنى دول بتوع ال parent classوهنلاقى تحت ال sum method ومكتوب برده
جنبها parent
-
بكده نفهم ال child class تقدر تستخدم
كل الحاجات بتاعت ال parent
طالما الحاجات ديه مش private
لان لو اى properties and method عباره عن private يبقى ال child
class
مش هتشوفها ولا هتقدر تستخدمها لكن لو اى access modifier تانيه يبقى هتشوفها وتستخدمها .
-
وطبعا لو عايزين نكتب كود داخل ال child
class
نقدر بس ال child
بس هى اللى هتستخدمه لكن ال parent ما يقدرش يستخدم الكود بتاع ال
child class
كما فى المثال ده :
-
فى المثال السابق welcomMethod ديه موجوده فى ال child class بس غير
موجوده فى ال parent
.
-
ملخص اللى فات ان ال child class بتورث من ال
parent class
كل الproperties and methods بس ما يكونوش private يعنى تقدر تستخدمها على طول كأنها موجوده
فيها اصلا لكن العكس غير صحيح .
ملحوظات :
-
لو عندى variable فى ال Class ممكن بدل ما نستخدمه باسمه على طول نكتب this.variable name وthis بتعبر عن ال class اللى احنا فيها ، كما فى
المثال :
-
هنلاقى فى
المثال السابق اتنين j بس كل واحده مختلفة عن التانيه وهى ديه ميزة this بتخلينا نقدر نفرق مين من ال variable يخص الclass ومين داخل ال method
-
لو عايزين
نستخدم variable او method من ال parent class داخل ال child class هنعمل ايه ؟ فيه اكتر من طريقه ، ممكن نكتب اسمه على طول او نكتب super.name وال name بيعبر عن اسم اى حاجه عايزين نستخدمها سواء variable او method
-
لو عندنا class ومش عايزين اى class تانيه تورث منها نعمل ايه ؟
بكتب قبل
الclass كلمه final
-
كما فى
الصورة السابقه اول ما نضع كلمه final
قبل
ال class كده معناه اننا مش هنقدر نورث من ال class ديه .
وممكن تجربوها تعملوا ال parent class تبقى final وبعد كده تعملوا فى ال
child class extends parent البرنامج هيطلع error ويقولك ما ينفعش لأن ال parent عباره عن final
كده نكون
خلصنا الجزء النهارده هو مش كبير بس محتاج تدريب كتير وياريت يا جماعه تقروا فى
الموضوع ده اكتر
-
ده حل Task الدرس السابق بالتوفيق إن شاء الله
السلام عليكم ورحمة الله وبركاته
No comments:
Post a Comment