You are on page 1of 35

‫المبادئ األساسية لتوجيه الكائن‬

‫اتجاه الكائن‬

‫التجريد‬ ‫•‬
‫التغليف‬ ‫•‬
‫نمطية‬ ‫•‬
‫التسلسل الهرمي‬ ‫•‬
‫ما هو التجريد ؟‬
‫نموذج يتضمن أهم جوانب مشكلة معينة مع تجاهل التفاصيل األقل أهمية •‬

‫طابور‬

‫يعداد‬

‫العنصر‬

‫• مثال على شراء عنصر تجريد‬


‫اتجاه الكائن (أنواع البيانات المجردة)‬

‫• كيف يمكننا وصف الفئات (الكائنات)؟‬


‫• يجب أن يكون الوصف‪:‬‬
‫– دقيق ال لبس فيه‬
‫– مكتمل‬
‫– ال تكون أكثر من التحديد‬
‫اتجاه الكائن (أنواع البيانات المجردة)‬
‫‪ ‬الغرض من التجريد‬

‫‪ ‬يتيح لنا التجريد إخفاء تفاصيل ‪.Implm‬‬


‫‪ ‬يسمح لنا التجريد بالنظر في مجموعة مختلفة‪.‬‬
‫‪.‬العناصر ومعاملتها حسب قواسمها المشتركة‬
‫‪ ‬التجريد هو الهدف الرئيسي لبرنامج ‪.Object Oriented Prog‬‬
‫‪ ‬يقلل التجريد من التعقيد‪ .‬مفتاح حل كبير‬
‫مشكلة‬
‫اتجاه الكائن (أنواع البيانات المجردة)‬
‫‪ ‬ما هو نوع البيانات المجردة (‪)ADT‬؟‬
‫‪ ‬الملخص (‪ )ADT‬هو مجموعة منظمة من المعلومات ومجموعة من‬
‫العمليات المستخدمة إلدارة تلك المعلومات‪.‬‬
‫‪ ‬تحدد مجموعة العمليات الواجهة لـ (‪)ADT‬‬
‫‪ ‬طالما أن ‪ ADT‬تفي بوعود الواجهة بدقة ‪ ،‬فال يهم ح ًقا كيفية تنفيذ‬
‫‪ADT‬‬
‫اتجاه الكائن (أنواع البيانات المجردة)‬
‫‪ ‬نوع ‪ /‬فئة البيانات المجردة‬
‫لكيان ال ت وجد ت طبيقات‬
‫‪.‬‬ ‫ت لع امة ا ألساسية ل‬ ‫‪ ADT ‬هو وص ل‬
‫ف لسما ا‬
‫مرتبطة ب ـ ‪.DAT‬‬

‫‪ ‬الفئة عبارة عن غرس فعلي لـ ‪.ADT‬‬

‫‪ ‬ال يحتوي ‪ ADT‬على أي تفاصيل تنفيذية ‪ ،‬وبالتالي ال يوجد تعقيد‬


‫مفترض‪ .‬وبالتالي ال يوجد تعقيد مفترض‪ .‬تحدد ‪ ADT‬السمات العامة‬
‫التي يجب أن تمتلكها جميع تطبيقات ‪.ADT‬‬
‫اتجاه الكائن (أنواع البيانات المجردة)‬

‫• كيف نحافظ على االكتمال والدقة وعدم الغموض دون دفع ثمن‬
‫اإلفراط في المواصفات؟‬

‫• من خالل التركيز ليس على اختيار معين للتمثيل ولكن على‬


‫العمليات والخصائص المهمة ‪ ،‬والتي تمكننا من الحصول على‬
‫توصيف مجرد ولكنه مفيد لفئة أو كائن ‪.‬‬
‫اتجاه الكائن (أنواع البيانات المجردة)‬

‫تمثيالت المكدس •‬

‫تمثيل المصفوفة‬ ‫تمثيل القائمة المرتبطة‬

‫االهلية‬
‫السابق‬

‫عدد‬
‫العنصر‬ ‫السابق‬

‫االخير‬ ‫العنصر‬
‫السابق‬

‫العنصر‬

‫‪1‬‬ ‫العنصر‬
‫• اتجاه الكائن (أنواع البيانات المجردة)‬

‫• إضفاء الطابع الرسمي على المواصفات‬


‫• ستوفر مواصفات ‪ ADT‬هذا الشكل الرسمي الذي يتكون من أربع‬
‫فقرات‪- :‬‬
‫يكتب‬ ‫–‬
‫المهام‬ ‫–‬
‫البديهيات‬ ‫–‬
‫الشروط المسبقة‬ ‫–‬
‫اتجاه الكائن (أنواع البيانات المجردة)‬

‫يكتب‬ ‫•‬
‫تشير فقرة األنواع إلى األنواع التي يتم تحديدها (ببساطة تسرد‬ ‫•‬
‫األنواع المقدمة في المواصفات)‪.‬‬
‫مكدس (‪)G‬‬ ‫•‬
‫يشير الحرف ‪ G‬إلى نوع غير محدد‪ G .‬يسمى المعلمة العامة‬ ‫•‬
‫الرسمية لنوع البيانات المجردة ‪.STACK‬‬
‫المهام •‬
‫تسرد فقرة الوظيفة العمليات القابلة للتطبيق إلى مثيالت‬
‫التي ستكون المكونات األساسية لتعريف النوع التي ‪ADT‬‬
‫تصف مثيالتها ال بما ذلك هي من خالل ما يجب أن تقدمه‬
‫‪(.‬الواجهة)‬
‫)التوقيع( ‪ f unction‬نمذجة العمليات الحسابية •‬
‫اتجاه الكائن (أنواع البيانات المجردة)‬

‫•‬ ‫‪:‬عمليات التكديس‬


‫•‬ ‫ضع ‪ -‬أضف عنص ًرا إلى المكدس‬
‫•‬ ‫إزالة ‪ -‬يزيل عنص ًرا من أعلى المكدس‬
‫•‬ ‫ي‪JJ‬زيلا‪JJ‬لعنصر ا‪JJ‬لعلويدونإزا‪JJ‬لته‪ltem - J‬‬
‫•‬ ‫صحيحا إذا كان المكدس فار ًغا‬
‫ً‬ ‫فارغ ‪ -‬يعود‬
‫•‬ ‫سا جدي ًدا‬
‫جديد ‪ -‬يُنشئ مكد ً‬
‫•‬ ‫أنواع العمليات‬
‫المنشئ –‬
‫يأمر –‬
‫استفسار –‬
‫وظيفة الوضع‬

‫وضع‬
‫و‬ ‫=‬

‫كومة‬ ‫عنصر‬ ‫كومة‬

‫‪: STACK [G] x G STACK‬ضع‬


‫]‪[G‬‬
‫فقرة الوظائف‬

• ‫ضع‬: STACK [G] x G STACK [G]


• ‫إزالة‬: STACK [G] / STACK [G]
• ‫العنصر‬: STACK [G] / G
• ‫فارغ‬: STACK [G] / BOOLEAN
• ‫جديد‬: STACK [G]
‫ما هو التغليف‬

‫إخفاء التنفيذ عن العمالء •‬


‫العمالء يعتمدون على الواجهة •‬
‫أمثلة على تغليف مثل •‬
‫‪ ،‬جهاز الكمبيوتر ‪ ،‬وسماعة الهاتف‬
‫‪.‬شاحنة ومركبة‬
‫ما هي نمطية؟‬
‫تقسيم شيء معقد إلى أجزاء أو وحدات يمكن التحكم فيها •‬

‫طابور‬

‫نظام المقصف‬ ‫ترتيب التنسيب‬

‫توصيل‬
‫الفواتير‬
‫ما هو التسلسل الهرمي؟‬

‫مستوى التجريد •‬
‫زيادة التجريد‬
‫فن‬

‫موسيقى‬ ‫أفالم‬ ‫أخبار‬

‫أ‪1‬أ‪2‬‬ ‫اإلجراء ‪ 1‬اإلجراء ‪2‬‬


‫تقليل التجريد‬
‫المفاهيم األساسية لتوجيه الكائن‬
‫•‬ ‫هدف‬
‫•‬ ‫فصل‬
‫•‬ ‫صفات‬
‫•‬ ‫عملية‬
‫•‬ ‫واجهة (تعدد األشكال)‬
‫•‬ ‫عناصر‬
‫•‬ ‫طرد‬‫َ‬
‫•‬ ‫النظام الفرعي‬
‫•‬ ‫العالقات‬
‫ما هو الشيء؟‬

‫بشكل غير رسمي ‪ ،‬يمثل الكائن كيانًا ‪ ،‬إما ماديًا أو •‬


‫‪.‬مفاهيميًا أو برنام ًجا‬
‫كيان مادي •‬
‫شاحنة‬

‫الكيان المفاهيمي •‬
‫عملية كيميائية‬

‫كيان برمجي •‬
‫بنية بيانات القائمة المرتبطة‬
‫تعريف أكثر رسمية‬

‫الكائن هو مفهوم أو تجريد أو شيء بحدود حادة ومعنى •‬


‫لتطبيق ما‬
‫الكائن هو شيء له •‬
‫حالة •‬
‫سلوك •‬
‫هوية •‬
‫الكائن له حالة‬

‫حالة الكائن هي إحدى الحاالت المحتملة التي قد يوجد فيها كائن •‬


‫عادة ما تتغير حالة الكائن بمرور الوقت •‬
‫ممثلة بـ‪ :‬قيم السمات ‪ +‬الروابط (مثيالت العالقة) •‬

‫اسم‬ ‫عمر‬
‫هوية الموظف‬ ‫‪567138‬‬
‫تاريخ التعاقد‬ ‫أ‪J‬كتوبر ‪18 2004‬‬
‫حالة‬ ‫تعليم‬
‫عمر‬
‫الكائن له سلوك‬
‫يحدد السلوك كيف يتصرف الكائن ويتفاعل مع الطلبات •‬
‫الواردة من كائنات أخرى‬
‫يتم تمثيل السلوك من خالل مجموعة الرسائل التي يمكن أن •‬
‫يستجيب لها (العمليات التي يمكن للكائن تنفيذها)‬

‫‪ OMER‬تعيين‬
‫)ا‪JJ‬لع‪J‬وا‪J‬ئد‪ :‬ا‪JJ‬لتشكل(‬

‫نظام التسجيل‬ ‫‪ CS 201‬دورة‬


‫كائن له هوية‬

‫كل كائن له هوية فريدة ‪ ،‬حتى لو كانت حالته متطابقة مع •‬


‫حالة كائن آخر‬

‫‪ OOP‬ي‪JJ‬علم‪OMER J‬‬ ‫‪ OOP‬عمر" ي‪JJ‬علم‪"J‬‬ ‫‪ OOP‬عمر" ي‪JJ‬علم‪"J‬‬


‫تمثيل الكائنات‬
‫يتم تمثيل الكائن كمستطيالت بأسماء مسطرة •‬

‫محاضر ‪:‬‬ ‫عمر‬


‫اسم الفصل فقط‬ ‫اسم الكائن فقط‬

‫عمر‪ :‬محاضر‬

‫اسم الفئة والكائن‬


‫مثال‪ :‬ا‪J‬لكائنات‬

‫‪ OO 201‬مقدمة إلى‬ ‫اللغة اإلنجليزية ‪101‬‬

‫الكهرباء ‪100‬‬ ‫اإللكترونيات ‪110‬‬

‫ا لجبر ‪110-‬‬ ‫‪110‬‬

‫خوارزميات ‪202‬‬
‫ما هو الفصل؟‬
‫الفئة هي وصف لمجموعة من الكائنات ذات الخصائص •‬
‫المشتركة (السمات) ‪ ،‬والسلوك (العمليات) ‪ ،‬والعالقات ‪،‬‬
‫والدالالت‬
‫الكائن هو مثيل لفئة •‬
‫‪:‬الفئة هي فكرة مجردة من حيث أنها •‬
‫يؤكد الخصائص ذات الصلة •‬
‫يقمع الخصائص األخرى •‬
‫فئة العينة‬
‫فصل •‬
‫الخصائص‬ ‫مسار‬ ‫سلوك‬
‫اسم‬ ‫أضف طالبًا‬
‫موقع‬ ‫احذف طالب‬
‫عرضت أيام‬ ‫احصل على قائمة المقرر‬
‫الساعات‬ ‫الدراسي‬
‫المعتمدة‬ ‫حدد ما إذا كانت ممتلئة‬
‫وقت البدء‬
‫وقت النهاية‬
‫تمثيل الطبقات‬

‫يتم تمثيل الفئة باستخدام مستطيل مجزأ •‬

‫محاضر‬
‫مقصورات الفصل‬

‫يتكون الفصل من ثالثة أقسام •‬


‫•‬ ‫يحتوي القسم األول على اسم الفئة‬
‫•‬ ‫يوضح القسم الثاني الهيكل (السمات)‬
‫•‬ ‫القسم الثالث يوضح السلوك (العمليات)‬
‫•‬ ‫‪.‬في الشريحة التالية مثال‬
‫حجرات الفصل (تابع)‬
‫قد يتم إلغاء القسمين الثاني والثالث إذا لم تكن هناك حاجة ألن •‬
‫تكون مرئية في الرسم التخطيطي‬

‫محاضر‬ ‫محاضر‬ ‫محاضر‬ ‫محاضر‬


‫اسم‬ ‫اسم‬
‫إمبيد‬ ‫إمبيد‬
‫)(خلق‬ ‫)(خلق‬
‫)(يتغيرون‬ ‫)(يتغيرون‬
‫)(حفظ‬ ‫)(حفظ‬
‫)(حذف‬ ‫)(حذف‬
‫مثال‪ :‬فئة‬

‫الكهرباء ‪101‬‬
‫‪ OO 201‬مقدمة إلى‬
‫‪110‬‬

‫بالطبع‬ ‫خوارزميات ‪202‬‬


‫اللغة اإلنجليزية ‪110‬‬

‫ا‪JJ‬لجبر ‪110-‬‬ ‫إلكترونيات ‪200‬‬


‫فئات الكائنات‬
‫كم عدد الصف الذي يمكنك رؤيته؟ •‬
‫العالقة بين الفئات والكائنات‬

‫الفئة هي تعريف تجريدي للكائن •‬


‫يحدد هيكل وسلوك كل كائن في الفصل •‬
‫إنه بمثابة نموذج إلنشاء الكائنات •‬
‫يمكن تجميع الكائنات في فئات •‬

‫محاضر‬

‫المحاضر يوهان‬ ‫محاضر شينثانا‬ ‫المحاضر سميث‬


‫ما هي السمة؟‬

‫هدف‬
‫فصل‬
‫ب ا لطبع ا لع رض‪:‬‬
‫ينسب‬ ‫قيمة السمة‬ ‫‪ = CS201‬الرقم‬
‫= ‪startTime‬‬
‫‪endTime =1030‬‬
‫‪1230‬‬
‫بالطبع‬
‫رقم‬
‫وقت البدء‬
‫وقت النهاية‬ ‫ب ا لطبع ا لع رض‪:‬‬
‫‪ = CS202‬الرقم‬
‫وقت البدء = ‪900‬‬ ‫وقت البدء = ‪1300‬‬
‫وقت البدء = ‪900‬‬ ‫وقت النهاية = ‪1500‬‬
‫‪endTime = 1100‬‬
‫ما هي العملية؟‬

‫فصل‬ ‫بالطبع‬

‫طا لب‪add‬‬
‫حذف الطالب‬
‫‪getStartTime‬‬
‫‪getEndTime‬‬
‫عملية‬

You might also like