بيجو 77
السويس اول السويس ثان السويس ثالث المنتدى القانونى منتدى التعارف والتهانى ابو المخاتير العجيب الاتصالات وعالم الانترنت الصحافة السيارات حبيبتى السويس المنتدى السياسى منتدى عالم الجريمة منتدى للشباب منتدى للبنات منتدى الرياضة منتدى الاغانى.............انضم معنا وسجل
بيجو 77
السويس اول السويس ثان السويس ثالث المنتدى القانونى منتدى التعارف والتهانى ابو المخاتير العجيب الاتصالات وعالم الانترنت الصحافة السيارات حبيبتى السويس المنتدى السياسى منتدى عالم الجريمة منتدى للشباب منتدى للبنات منتدى الرياضة منتدى الاغانى.............انضم معنا وسجل
بيجو 77
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


بيجو 77 هو احلى منتدى للهوايات والذكريات التى عشناها
 
البوابةالرئيسيةأحدث الصورالتسجيلدخولصحافة pejoo77

 

 الجافا ...الدرس الثانى

اذهب الى الأسفل 
كاتب الموضوعرسالة
karem
Admin
karem


عدد الرسائل : 629
رقم العضوية : 1
تاريخ التسجيل : 23/11/2007

بطاقة الشخصية
الاسم/:
تاريخ الميلاد:
الدولة: جمهورية مصر العربية

الجافا ...الدرس الثانى Empty
30042008
مُساهمةالجافا ...الدرس الثانى

تكلمنا في الدرس السابق عن الobjects وعرفنا أن كل ال objects التي تنتمي لنفس ال class يشتركون في نفس الصفات (variables) والسلوك (methods) و الآن بإذن الله سنكمل باقي خواص ال Object Oriented Programming التي تمثل الأساس لكتابة برامج قوية ومتميزة .
ما هو ال Inheritance؟
يوجد في علوم الأحياء علم إسمه التصنيف العلمي (Scientific Classification) وفيه يقوم العلماء بتصنيف الكائنات الحية وترتيبها طبقاً للخواص المشتركة. أول نظام للتنصيف قام به أرسطو الذي صنفها على أساس بيئتها , وقد ترجم ابن رشد تصنيف أرسطو في كتاب مفقود وبقيت الترجمة اللاتينية لكتاب ابن رشد. و التصنيف الحديث تعود جذوره إلى نظام كارلوس لينيوس, الذي صنف الأنواع طبقا للخواص الفيزيائية المشتركة.
يبدأ التصنيف الرئيسي بتسلسل مملكه ، شعبة ، طائفة ، رتبة ، عائلة ، جنس ، نوع . بعد ذلك أضيف فوق رتبة ، تحت رتبة ، فوق طائفة ، تحت طائفة ، قبيلة . وتصنيفات أخرى.

فمثلا الإنسان ينتمي لمملكة الحيوان (Animalia) ومن صفات هذه المملكة أن الكائنات فيها متعددة الخلايا multicellular أي إنها كائنات تتكون من أكثر من خلية و إذا تدرجنا في شجرة الحياة للإنسان فسنجده ينتمي إلى طائفة (class)أسمها الثديات (Mammaila) والتي ينتمي إليها كل الحيوانات و من صفات هذه الطائفة أن الكائنات التي تنتمي إليها تلد صغاراً و ترضعهم أمهاتهم اللبن عن طريق الثدي. وينتمي الإنسان أيضاُ إلى تحت طائفة (subclass) إسمها placentalia و التي من صفاتها أن الطفل في مرحلة الحمل يتغذى عن طريق المشيمة.

فالإنسان يرث صفات وسلوك ال تحت طائفة (subclass) التي تسمى placentalia وبالتالي يرث صفات وسلوك الطائفة (class) التي أسمها Mammaila وبالتالي يرث صفات وسلوك المملكة Animalia. وكما نري فإن التصنيفات العليا أي التي تتجة ناحية جذر الشجرة مثل المملكة تحتوي على صفات عامة و كلما تدرجنا ناحية فرع الشجرة كلما كانت الصفات و السلوك أكثر تخصصاً مثل صفات وسلوك الإنسان.
مفهوم ال Inheritance في OOP ينطبق عليه نفس الكلام السابق. فال class من الممكن أن ترث صفات و سلوك class أخرى. وال class التي ترث نسميها subclass و الclass التي يورث منها تسمى superclass وكما نلاحظ فهذة المسميات جاءت من علم التصنيف.
وفي الجافا من الممكن أن ترث ال class مباشرة من class واحدة فقط ولكنها تستطيع أن ترث من أكثر من class بطريقة غير مباشرة.
فلو قلنا أن الشجرة التي في الصورة السابقة هي شجرة كاملة (هي غير كاملة بالطبع) فإننا نقول أن ال subcalss التي تسمى placentalia ترث صفات ال class التي تسمى Mammaila بطريقة مباشرة و ترث صفات المملكة Animalia بطريقة غير مباشرة.
وكما نرى فإن ال subclass ليست محدودة بصفات ال superclass التي ترث منها بل تزيد عليها صفات وسلوك . في الجافا فإن ال superclass العليا في شجرة الوراثة أي الجذرهي ال class التي تسمى Object.
ال class Object ليس لها علاقة بمعنى object الذي تكلمنا عنه بل هي class وإسمها Object. وطالما أن جذر الشجرة في الجافا هي Object class فإن كل ال classes ترث سلوك وصفات هذه ال class مثل السلوك (method) toString و التي ترجع String (تتابع من الحروف) والتي تصف ال class.
لو رجعنا لعلم التصنيف و أردنا أن نعرف class تكون هي الجذر لكل الأشياء سواء حية أو غير حية فما هي ال methods التي ستكون في هذه ال class؟
أعتقد إنها ُتسَبِّحُ.
يقول تعالى ( ُتسَبِّحُ لَهُ السَّمَاوَاتُ السَّبْعُ وَالأَرْضُ وَمَن فِيهِنَّ وَإِن مِّن شَيْءٍ إِلاَّ يُسَبِّحُ بِحَمْدَهِ وَلَـكِن لاَّ تَفْقَهُونَ تَسْبِيحَهُمْ إِنَّهُ كَانَ حَلِيماً غَفُوراً)
إن مميزات ال Inheritance هي:

  • ال subclasses نستخدمها لنحصل على سلوك وصفات أكثر تخصصا من ال superclass التي سلوكها عاما
  • في البرامج الكبيرة يشترك أكثر من مبرمج في كتابة البرنامج ومن الممكن أن يكتب أحد المبرمجين abstract classes أي classes تجريدية بمعنى إنها تشتمل على سلوك عام وعلى المبرمجين الآخرين أن يقوموا في ال subclasses بكتابة الكود الخاص بهذه السلوك (methods) فمثلا في برنامج صناع الحياة قام المبرمج عمرو خالد بعمل ال abstract class التي إسمها نهضة و ال methods التي تنتمي لها هذه ال class هي (مثلا) : تنهض بالأمة و تتفوق و تبدع و تصمم و تنتج
    وعلى المبرمجين المشتركين في برنامج النهضة أن يكتبوا subclasses ترث من ال class نهضة و يقوموا بكتابة ال الكود الخاص بال methods التي تنتمي لل class نهضة. فمنهم من يكتب ال class زراعة الأسطح ومنهم من يكتب class النهضة الصحية وهكذا...
ما هو ال access control؟
لقد خلق المبدع والأول والآخر سبحانه الclass الإنسان وجعل له صفات (members = variables) من عينين وأنف وأذن و قلب و الكثير من الصفات الأخرى وقد جعل الله هذه الصفات من الممكن أن نصل لها ونمسكها فنستطيع أن نمسك أعيننا و هناك الطبيب الجراح الذي يمسك القلب بيديه فهذه الصفات يستطيع أن يصل لها أي شيء فهي عامة (public) ، وخلق الله أيضاً صفات (members) في الإنسان مثل الروح ولكننا لانستطيع أن نصل لها و نمسك بها. يقول تعالى (و يسألونك عن الروح قل الروح من أمر ربي) فهي صفات خاصة (private) ممنوع أن تصل لها أي (class) أخرى . و تخيل لو كانت الروح من الممكن أن نصل لها ونمسكها مثل العين فكما إنه هناك من تمرض عينه فيقوم بنقل عين إنسان آخر فلو كانت الروح من الممكن أن نصل لها (public) لوجدنا من لاتعجبه روحه فينقل ويستبدل روح إنسان آخر ! إذن فهناك (members) في ال class تكون public وأخرى private لاتستطيع class أخرى أن تصل لها مباشرة. ولكن قد يقوم صانع ال class بعمل methods تؤثر في هذه ال private members ودون أن تصل لها. فمثلا جعل الله الخالق العظيم methods في الإنسان يستطيع بها أن يؤثر في الروح ومن هذه ال methods يصلي و يزكي ويصوم و....
في الجافا يستطيع ال class creator أن يحدد قواعد الوصول (access control) لل members في ال class من variables و methods. هذه access control هي : publicو private و protected و ال package access (default).
وسنتكلم عنهم بالتفصيل في دروس قادمة عند شرح الكود.
ما هو ال Interface ؟
في الكمبيوترات الحديثة توجد ال USB والتي نستطيع عن طريقها أن نوصل الكثير من الإجهزة للكمبيوتر مثل الطابعات و الكاميرات. ومن الممكن أن نخترع أي جهاز ونوصله بالكمبيوتر عن طريق ال USB .
في الجيش توجد رتب مختلفة وهذه الرتب تتكلم مع بعضها بقواعد وبروتوكول محدد. إذن لنجعل ال classes المختلفة تتكلم وتتفاعل مع بعضها البعض لابد من برتوكول يحدد طريقة الإتصال. فالكمبيوتر لايهمه نوع الجهاز المتصل به فالمهم أن يكون هذا الجهاز فيه إمكانية الإتصال بالكمبيوتر عن طريق الUSB . هناك مواقع على الإنترنت من classes مختلفة فمنها ما هو PHP و منها ASP ومنها JSP ولكي نعرض هذه المواقع بمتصفح الإنترنت فالمتصفح لا يهمه ال class التي ينتمي لها هذا الموقع فالمهم فقط هو أنها تستطيع أن ترسل الHTML عن طريق بروتوكول ال HTTP. هذا البروتوكول المستخدم في الإتصال بين ال objects من classes مختلفة يسمى interface.
فعندما نريد أن نجعل classes كثيرة تتكلم مع class أخرى فعلى هذة ال classes أن تحتوي على ال methods الموجودة في ال interface الذي يحدد طريقة الإتصال.
الدرس القادم سنبدأ تعلم مكونات الجافا وكتابة كود ال java.
الواجب العملي:
تخيل إنه توجد class إسمها سيارة فما هي ال vairables, and methods التي توجد بها و أي منها public وأي منها private و ما هي ال subclasses التي نقترحها للclass سيارة؟ ويوجد ماركت كبير لبيع السيارات و القوارب و الالأدوات الرياضية فما هي ال methods التي يجب أن تكون موجودة في ال interface الذي ستحتوية هذه ال classes ؟
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://pejoo77.yoo7.com
مُشاطرة هذه المقالة على: reddit

الجافا ...الدرس الثانى :: تعاليق

لا يوجد حالياً أي تعليق
 

الجافا ...الدرس الثانى

الرجوع الى أعلى الصفحة 

صفحة 1 من اصل 1

 مواضيع مماثلة

-
» الجافا ......الدرس الاول
» لمصفوفات Arrays فى لغة الجافا
» قانون الضريبة على الدخل...الكتاب الثانى
» القواعد الاساسية للغة الجافا
» اللائحة التنفيذية الباب الثانى..المرتبات وما فى حكمها

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
بيجو 77 :: الفئة الأولى :: عالم الكومبيوتر والانترنت-
انتقل الى: