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