Note 3

Page 1

‫‪Part-1-1 : object and class‬‬ ‫املفاهيم الاساسية ‪:‬‬ ‫‪Objects‬‬ ‫‪Classes‬‬ ‫‪Methods‬‬ ‫‪Parameters‬‬ ‫‪ ‬عند الانتهاء من هذا الدرس يجب ان تكون قد استدركت ما هو ‪، objects & classes‬‬ ‫وفيما تستخدم ‪ ،‬وكيف تتعامل مع بعضها ‪.‬‬ ‫‪ ‬هذا الدرس يشكل الاساس لبقية الاستكشافات في هذه املادة‪.‬‬


‫‪Objects‬‬ ‫نعطي هذا املثال لتوضيح التعبير السابق‪:‬‬ ‫افرض انك تقوم بنمذجة ملحاكاة حركة املرور‪ :‬احد انواع املوجودات ( ‪ )entity‬التي ستتعامل معها‬ ‫هي «سيارات» ‪.‬‬ ‫ما ترمز اليه «سيارة» في سياق الكالم املطروح؟ هل هي ‪ class‬او ‪ object‬؟‬ ‫بعض الاسئلة ممكن تساعدنا لتقرير ذلك ‪:‬‬ ‫ما لون السيارة؟ كم سرعتها؟ اين هي الان ؟‬ ‫هل نستطيع الاجابة؟ ال ‪ ،‬حتي يكون السياق عن سيارة محددة ‪ .‬والسبب في ذلك ان كلمة‬ ‫«سيارة» في هذا السياق تشير لصنف سيارة ‪ ،‬نحن نتكلم عن سيارات بشكل عام وليس عن سيارة‬ ‫بحد ذاتها ‪.‬‬ ‫مثال لو قلت « سيارتي القدمية متوقفة في كراج املنزل»‬ ‫نحن الان نستطيع ان نجيب عن الاسئلة السابقة‪ :‬لونها ابيض ‪ ،‬ليست سريعة‪ ،‬وهي في الكراج‪.‬‬ ‫الان نحن نتكلم عن ‪ object‬ـ ـ ـ عن مثال معين السيارات ـ ـ ـ ـ‬


‫‪Objects‬‬ ‫‪ ‬عادة نشير ل ـ ـ ـ كائن معين ‪ particular object‬كحالة ‪ ، instance‬ومن الان سنستخدم‬ ‫مصطلح ‪ ، Instance‬وهو في الحقيقة مرادف تقريبا مع ‪. object‬‬

‫‪ ‬نحن نشير للكوائن كحاالت عندما نريد ان نؤكد على أنها من ‪ Class‬معين مثل ‪:‬‬ ‫’‪‘This object is an instance of class car‬‬


‫‪Calling methods‬‬ ‫‪ ‬العمليات التي نستخدمها للتعامل مع ‪ . OBJECT‬تسمي ‪ methods‬في ‪ . java‬من الان‬ ‫سنستخدم هذا املصطلح ‪ ،‬بحيث نقول ‪:‬‬ ‫‪methods are called or invoked .‬‬


‫‪Parameters‬‬ ‫‪ ‬عندما نستدعي (‪ ) invoked‬ال ـ ‪ method‬قد ال نحتاج الي أي معلومات وقد نحتاج لذلك‬ ‫‪.‬‬ ‫‪ ‬اذا كانت الـ ـ ‪ methods‬مكتوبة بطريقة تحتاج فيها ملعلومات اضافية إلنجازها‪.‬فان هذه‬ ‫القيم الاضافية التي تحتاجها بعض ‪ methods‬تسمي ‪ ، parameters‬ولكل ‪methods‬‬ ‫نوع ‪ parameters‬تشير له عند استدعاءها‪ ،‬ويظهر في ‪ signature‬لل ـ ‪ methods‬كما في‬ ‫السطر التالي‪Void method1(int distance) :‬‬ ‫‪ Signature ‬يعطي بعض املعلومات عن ‪ ، methods‬فالجزء بين الاقواس هو عن ال ـ‬ ‫‪ parameters‬املطلوبة ‪ ،‬فهو يجب ان يحدد النوع والاسم ‪ .‬علي ذلك فان ‪signature‬‬ ‫السابق يقول ان ال ـ ‪ methods‬تحتاج ‪ parameter‬واحد نوعه “صحيح“ واسمه‬ ‫‪. distance‬‬


‫‪Data type‬‬ ‫‪‬‬ ‫‪‬‬

‫‪‬‬ ‫‪‬‬ ‫‪‬‬

‫النوع يحدد ماهي البيانات التي يمكن تمريرها لل ـ ـ ‪. parameter‬‬ ‫الفحص الدقيق لقائمة ال ـ ـ ‪ object‬توضح ان مدخالت بعض ال ـ ‪ method‬تحتوي‬ ‫‪ ، parameter‬واذا كانت ‪ method‬ليس لها ‪ parameters‬فان اسم ‪ method‬يكون‬ ‫متبوعا بأقواس فارغة‪.‬‬ ‫اذا كانت تحتوي ‪ ، parameter‬نوع ذلك ‪ parameter‬يجب ان يوضح ‪.‬‬ ‫يوجد في ال ـ ‪ method‬ايضا جزء نص ي يسمي التعليق «الذي يسبق ال ـ ‪ ،» signature‬وهو‬ ‫مشمول في الكود ليعطي معلومات للقارئ عن عمل ال ـ ـ ‪.. method‬‬ ‫يوجد العديد من انواع البيانات التي تدعمها ‪ * ، Java‬راجع انواع البيانات*‬


‫‪Multiple instances‬‬ ‫‪ ‬طاملا عندك ‪ ، Class‬فيمكنك خلق العديد من الـ ـ ـ ـ ‪( objects‬او ‪ )Instances‬من ذلك الـ ـ‬ ‫‪. Class‬‬ ‫‪ ‬لكل ‪ object‬خصائص خاصة به ‪ ،‬والتي يمكن تغييرها باستدعاء ال ـ ـ ‪method‬‬ ‫الخاصة( التي تعمل) بهذا الـ ـ ـ ـ ‪ object‬وبذلك يكون تأثيرها علي هذا الكائن بعينه ‪.‬‬ ‫‪ ‬ممكن ان نالحظ بعض املعلومات الاضافية حول ال ـ ـ ‪ parameters‬وهو ان ال ـ ـ ـ ‪method‬‬ ‫قد تحتوي علي اكثر من ‪ parameter‬ويكون مفصول بينهما بال ـ ـ ‪. » , « comma‬‬


‫‪State‬‬ ‫‪ ‬مجموعة القيم لكل الصفات ( ‪ )attribute‬التي تعرف الكائن تسمي ال ـ ـ ـ ‪object’s state‬‬


What is an object? ďƒ˜ compare and contrast between two objects from the same class and another different object ?


‫‪Object interaction‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬

‫كل ‪ object‬له ‪ Methods‬تكون بمثابة العمليات التي تجري عليه ‪ ،‬اي عندما نريد‬ ‫الاتصال باي ‪ object‬سيتم هذا عن طريق ال ـ ـ ـ ‪ methods‬التي تحتويه‪.‬‬ ‫‪ : Method-calling‬الكائنات ( ‪ ) objects‬يمكنها التواصل عن طريق استدعاء ‪Methods‬‬ ‫بعضهم البعض‪.‬‬ ‫كم ‪ Class‬في الشكل ؟‬ ‫كم ‪ objects‬في الشكل ؟‬


‫‪Object interaction‬‬ ‫‪‬‬

‫‪‬‬ ‫‪‬‬ ‫‪‬‬

‫اربع ‪ Classes‬رأيناها في ‪ ، shapes project‬الان لدينا ‪ picture class‬وهذا الـ ـ‬ ‫ُ‬ ‫‪ class‬كتب ليرسم لنا الشكل الظاهر امامنا‪ .‬بحيث عندما ننش ئ ‪ instance‬من هذا‬ ‫ال ـ ‪ ، class‬تقوم بإنشاء ‪2-square object & a triangle & circle‬‬ ‫نقوم بتحريكهم ‪ ،‬وتغيير اللون ‪ ،‬وتغيير الحجم ‪ ،‬حتي تكون مشابهة للصورة‪.‬‬ ‫السؤال املهم كيف نكتب هذا ال ـ ـ ‪ class‬؟‬ ‫‪Picture‬‬ ‫كل ‪ Class‬عنده ‪ source code‬مرتبط به‬ ‫‪،‬وهو عبارة عن نص يبين تفاصيل الـ ‪. Class‬‬


‫‪Source code‬‬ ‫‪ ‬هو عبارة عن نص مكتوب بلغة برمجة (لغة جافا )‪ ،‬وهو يعرف ماهي الحقول ( ‪) fields‬‬ ‫و ال ـ ‪ methods‬التي يحتوي عليها ال ـ ‪ ، class‬و ما لذي يحصل بالضبط عندما يتم‬ ‫استدعاء لل ـ ـ ‪. methods‬‬ ‫‪ ‬الجزء الكبير من تعلم فن (مهارة) البرمجة ‪ ،‬هو تعلم كيفية كتابة ال ـ ‪definitions‬‬ ‫‪Picture‬‬ ‫‪ . class‬وسوف نتعلم استخدام لغة جافا لعمل ذلك‬ ‫•‬ ‫•‬

‫محتويات ال ـ ‪Class‬‬ ‫الهيكلية‬

‫‪ ‬ما هو الـ ـ ـ ـ ‪ source code‬للصورة في الشكل املبين؟‬ ‫• ‪sheet-1 :‬‬

‫الحل‬


‫تمارين‬ ‫‪ ‬في ال ـ ـ ـ ‪ source code‬ل ـ ـ ـ ‪ )sheet-1 ( picture class‬اوجد الجزء الذي‬ ‫يرسم الصورة ‪َ ،‬‬ ‫غيره بحيث ‪ sun‬يصبح لونها ( ‪ )blue‬بدل (‪. ) yellow‬‬ ‫‪ ‬اضف ‪ sun‬اخري للصورة وستحتاج الي ‪:‬‬ ‫‪ .1‬اضافة سطر في جزء تعريف الحقول وهو في الجزء العلوي لل ـ ـ ‪. Class‬‬ ‫‪ .2‬كتابة كود مالئم إلنشاء الـ ـ ‪ sun‬الثانية في الصورة‪.‬‬

‫‪ ‬مالحظات‪:‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫ستقوم بتحرير (‪ )Edit‬للكود في اي بيئة تطويرللغة جافا ( ‪، )NetBeans IDE‬‬ ‫نفذ البرنامج ‪ ،‬وذلك لتجهيزه للتمرين‪.‬‬ ‫اتبع بنية ال ـ ‪ class‬املبينة في ‪ sheet-2‬عند كتابتك للكود‪.‬‬


Program methodology Compilation 


‫‪Return values‬‬ ‫‪‬‬ ‫‪‬‬

‫‪‬‬ ‫‪‬‬ ‫‪‬‬

‫الـ ـ ‪ methods‬قد تعود لنا بقيمة ‪ ،‬وبالطبع نفهم ذلك من ‪ signature‬الخاص بها‬ ‫فيما اذا كانت ال ـ ‪ method‬ستعود بقيمة ام ال ‪ ،‬وايضا ما نوع هذه القيمة؟‬ ‫مث ـ ـ ـ ـ ـ ـ ـ ـ ــال‪:‬‬ ‫)(‪• String getName‬‬ ‫)‪• Void changeName(String replaceName‬‬ ‫فالكلمة ‪ void‬تشير ان هذه ال ـ ‪ method‬ال تعود باي نتيجة بينما في الحالة الاولي فان‬ ‫الـ ـ ‪ method‬تعود لنا بنتيجة نوعها ‪. string‬‬ ‫ال ـ ‪ methods‬التي تعود بقيم تمكنا من الحصول علي معلومات من ال ـ ‪ object‬وذلك‬ ‫باستدعاء هذه ال ـ ‪. methods‬‬ ‫بذلك يمكن استخدام ال ـ ـ ‪ methods‬اما لتغيير حالة ال ‪ object‬او ملعرفة املزيد عنه‪.‬‬


‫‪Summary‬‬ ‫‪‬‬ ‫‪‬‬

‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬

‫في هذا الجزء استكشفنا اساس ال ‪ classes‬و ال ‪ . objects‬و عرفنا حقيقة ان ال ‪ objects‬تحدد بال ـ‬ ‫‪ . classes‬حبث ان ال ‪ classes‬يمثل املفهوم العام للش ئ بينما ال ‪ object‬يمثل حالة من ال ‪ class‬ويمكن‬ ‫ان يكون عندنا عدة ‪ objects‬من اي ‪. class‬‬ ‫ال ‪ objects‬عندها ‪ methods‬والتي نسخدمها لالتصال بها ‪ ,‬هذه ال ‪ methods‬نستخدمها لتغيير حالة‬ ‫ال ‪ object‬او للحصول علي معلومات عنه‪.‬‬ ‫ال ‪ methods‬عندها ‪ parameters‬و ال ‪ parameters‬عندها انواع( ‪) types‬‬ ‫ال ‪ methods‬تعود (‪ ، )types‬بحيث نحدد اي نوع من البيانات ستعود به (‪ ، ) Return‬واذا كان نوعه‬ ‫‪ void‬فهي لن تعود بش ئ‪.‬‬ ‫ال ‪ objects‬تخزن البيانات في ‪( fields‬والتي ايضا عندها ‪ ، )types‬وكل قيم بيانات ال ‪ object‬مع بعضها‬ ‫تعرف ب ـ ـ ـ ـ ‪. object’s state‬‬ ‫ال ‪ object‬ينش ئ من ال ‪ class definitions‬املكتوب بلغة برمجة محددة ‪ .‬والبرنامج في لغة جافا سيكون‬ ‫فيه العديد من ال ‪ classes‬كل ‪ class‬عنده ‪ methods‬والتي تستدعي كل منها الاخر بطرق مختلفة‪.‬‬ ‫ولكتابة برنامج جافا ‪ ،‬نحن نحتاج ان نتعلم كيف نكتب‪ class definitions‬يتضمن ‪fields & methods‬‬ ‫وكيف نضع هذه ال ‪ classes‬مع بعضها بطريقة جيده‪( .‬باقي املنهج يتناول مع هذا املفهوم)‬


Concept summary :‫بعض املصطلحات التي قدمت في هذه املناقشة‬ Object , class, instance, method-calling , signature , parameter , type , state , source code , return value , compiler. ‫ علي الطالب وضع مالحظات خاصه به لهذه املفاهيم وعرضها للمناقشة اذا رغب في‬o .‫ذلك‬ . Result ، multiple instances ‫ اختبر نفسك باملصطلحات التالية‬o


Part-1-2 : class definition :‫ يمكن تقسيمه الي جزئين رئيسيين‬class‫ ) مصدر معظم ال‬class ‫ ( نمط الــ‬ Outer ‫ الخارجي‬ Inner ‫ الداخلي‬ Public class ‫إسم الصنف‬ { inner part of the class (fields , constructor , methods) }

:‫ املفاهيم الاساسية التي ستناقش‬

fields

Methods (Accessor , Mutator)

Constructors

Assignment , and conditional statements.

parameters

:‫سنستعرض‬ Methods ، Constructors،Fields ‫ترتيب‬ parameters ‫تمرير البيانات من خالل (عبر) ال ـ ـ ـ ـ‬ Assignment ‫تخزين القيم في املتغيرات‬ Mutator and Accessor Methods ‫اسلوب الاسترجاع و اسلوب التغيير‬ Methods ‫الطباعة من‬ IF statement . ‫القيام باختيارات‬

(1 (2 (3 (4 (5 (6


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.