بسم الله الرحمن الرحيم والصلاة والسلام علي سيدنا محمد
هنبدأ بقى ي جماعه ف الجد، ونبدأ نحط الخواص المطلوبه لكل class
قولنا ان شركة apple بتعمل تصميم خاص ب iphone، ف هناخد ال iphone على سبيل المثال ومش هنتعلق ب devices تانيه
ال iphone ده بيختلف من موديل للتانى فى iphone5,iphone6 iphone6plus كل واحد من دول غير التانى، على سبيل المثال المعلومات دى اكيد مش اكيده
ال iphone5 الرام بتاعه 3 جيجا، حجم الشاشه 5 ونص
ال iphone6 مثلا الرام بتاعه 4 والشاشه 6
الاتنين مختلفين تماما لكن الاتنين مشتركين ف نفس الخواص، اى هي نفس الخواص ان ليهم رام وليهم شاشه وليهم حاجه معينه بيشتركوا فيهم كلهم، لكن القيم بتاعتهم بتختلف من الفون للتانى
هو ده م يسمى ب Properties او الخواص
فى المثال :- انا جيت فى class AppleDevic عاوز اعمل الخواص بتاعتى
هنكتب كومنت بسيط properties // الخواص بتاعتى بتعرفنى ال device بتاعت ال apple دى اى هي الخواص بتاعتها
مش احنا قولنا ف الدرس الاول ان كل كائن انت هتنشه ف الدنيا من ال Class ليه خواص العربيه ليها لون وموديل وليها خواص تخصها
نفس القصه ف الايفون
الايفون ي جماعه ليه ram .. حجم الرام
ليه مثلا inch .. حجم الشاشه
ليه بردو memory .. سعة التخزين
دى الخواص بتاعت ال object بتاعى
الصوره توضح
الخواص دى ي جماعه ف البرمجه الكائنيه بتحتاج لحاجه اسمها public، public دى عباره عن ايه ؟
ال public دى حاجه من علامات الظهور visibility
- عندنا حاجه اسمها public
- عندنا حاجه اسمها privete
- عندنا حاجه اسمها prodected
التلاته دول هنشرحهم بالتفصيل وهتعرف الفرق م بينهم لكن المطلوب انك تبقى عارفهم
بتعرف ال object وال application بتاعك عاوز تكون متاحه للجميع ولا مكان معين مش هنتعمق ف القصه دى دلوقتى علشان يكون شرحها بتعمق ف وقتها
لازم بس تعرف ان انت علشان تعرف ال Propertie بتكتب واحده من التلاته دول public، privete، prodected
ممكن لو انت اشتغل على تطبيق معمول ب oop قديم مثلا من اصدارات ال php4 ممكن تلاقى كلمه من الكلامات بدل public اسمها var
ال var ي جماعه لسه موجوده ف php وبتعبر عن كلمة public
لكن بعد م شالوها من اللغه رجعوها ف الاصدارات ال php الجديده علشان لو حد عنده اصدار قديم مثلا او تطبيق معمول باصدار قديم ميحصلوش اى مشاكل والتطبيق بتاعه يقف
ف الكلمه لو انت شوفتها متقول اى ده انا اول مره اعرف الكلمه دى دا ال var دى بتاعت الجافا اسكريبت اى اللى جابها هنا ؟ لا هي موجوده هنا اطمن
لغاية هنا الموضع جميل وصممت ال device بتاعتى معنيه اللى هي ال iphone وحطيت الخواص بتاعتها
ولما اجى اصنع موبايل جديد باخد الخواص دى واشوف كل موبايل خواصه اى ف دول لاحظ ف الامثله السابقه كلها ان حاطط ال $ بتاعتى من غير value يعنى مش كاتب public $ram = " 2gb";
ليه ؟
طب تمام لو جيت انا قولت ان الرام
public $ram = " 2gb";
معنى كدا انك هتاخد ال properties دى لكل ال device لا انا م عايز كدا، انا بديك تصميم فاضى بديك مخطط مش بديك حاجه مرسومه يعنى بمعنى اصح بديك لوحة مرسومه بالقلم الرصاص وانت تلون
ف انا بديك الخواص بس فاضيه وانت تاخد التصميم وتنشئ منه موبايل على حسب دماغك عاوز الرام يكون كام الشاشه حجمها اى الميموري سعته اد اى والخ
دى ي جماعه ال device وجييت انا عملت iphone6plus من ال class AppleDevice
وهنشوف زي م هو كدا
class AppleDevice {
// properties
public $ram;
public $inch;
public $memory;
}
$iphone6plus = new AppleDevice ();
echo '<pre>';
var_dump($iphone6plus);
echo '</pre>';
دا الكود ونشوف الصوره تحت
زي م انتوا شايفين جابلى ال object الاولانى اللى انا عملته object(AppleDevice)#1 فى 3 خواص وفاضين زي م انتوا شيفين NULL قيمه فاضيه مفيش اى حاجه لو انت حطيت قيمه اساسيه
public $ram = "2GB";
هتظهر كدا
object(AppleDevice)#1 (3) { ["ram"]=> string(3) "2GB" ["inch"]=> NULL ["memory"]=> NULL }
روحت ماسح ومرجعه لاصله تانى
public $ram;
حبيت انا اعمل فون جديد تانى اسمه iphone7plus
ببساطه جدا
$iphone7plus = new AppleDevice ();
echo '<pre>';
var_dump($iphone7plus);
echo '</pre>';
طبعا من نفس ال class
object(AppleDevice)#1 (3) { ["ram"]=> NULL ["inch"]=> NULL ["memory"]=> NULL } object(AppleDevice)#2 (3) { ["ram"]=> NULL ["inch"]=> NULL ["memory"]=> NULL }
كدا عندنا اتنين اوبجيكت من ال appleDevice وكل واحد فيهم فيه خواصه اللى انا رسمتها ف المخطط بتاعى
ولو عملت ابديت مثلا وزودت خاصيه هتظهر ف الاتنين ولو شيت واحده هتتشال من التانيه بردو
لغاية دلوقتى الموضوع بسيط ومفيش اى تعقيدات
هنقول بس معلومه تخص الclass "اى Class ف الدنيا بيبقى ليه properties "
فى نقطه هنا مهمه .. ف يوم من الايام ممكن تواجهك مشكله فى اسم ال class تبقى تخلى بالك وانت بتسمى اسم ال class ميكونش من الاسماء المحجوزه ف php
الclass بتاعك لازم يكون بعيد عن الكلمات المحجوزه ف اللغه، معتقدش ان انت الاسماء راحت من عندك علشان تاخد من الاسماء المحجوزه
تقدر تدخل على موقع اللغه php.net وتشوف اى الاسماء المحجوزه
انا جبتلك اللينك https://www.php.net/manual/en/reserved.php هو ده اللينك ادخل وشوف
دى كانت معلومه على جنب كدا
يارب يكون المقال سهله ونتباع ان شاء الله ف المقال القادم
والسلام وعليكم ورحمة الله وبركاته
التعليقات (0)
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !