**** * * المفاهيم الأساسية للـ OOP من خلال لغة ++C >> مفهوم الكلاس Class
منتديات الوزير التعليمية Arabic Minister Forums, Educational and Networking - Alwazer
  • شبكة
  • منتديات
  • ديوانية
  • منتدى
  • اخبار
  • اسلام
  • تفسير
  • دراسات
  • برامج
  • مقالات
  • قصص
  • علمية
  • ايقونات
  • دليل
  • حواء
  • مطبخ
  • عالم حواء
  • العاب
  • موسوعة
  • برمجيات
  • اطفال
  • شعر
  • دروس
  • توبيكات
  • صحة
  • قنوات
  • بلدان
  • نكت
  • الثقافة الجنسية
  • مشاهير
  • أسرة
  • جن
  • فيديو
  • معاني
  • متفرقات


  • الجودة الشاملة | قضية | شخصية | تخطيط | موارد بشرية | مبتعث | إدارة مدرسية | خطة مدير | خطة | التربية الإسلامية | اللغة العربية | علم | رياضيات | كيمياء | اجتماعيات | E | صفوف أولية | رياض أطفال | نشاط مدرسي | موهبة | برنامج | مطويات | خطة مدير تشغيلية |

    الموضوع: المفاهيم الأساسية للـ OOP من خلال لغة ++C >> مفهوم الكلاس Class

    تحدثنا سابقا عن مقدمة تاريخيةعن الـ OOP و ذكرنا أن دراستنا لها ستكون عن طريق لغة سي بلس بلس ، و كنا قد ذكرنا أن الفكرة الأساسية في الـOOP هي


    النتائج 1 إلى 2 من 2
    1. #1
      رَئِيّسْ مَجّلِسْ اَلوُّزَرَاءْ
      الصورة الرمزية كبريـ انثى ـاء
      الحالة : كبريـ انثى ـاء غير متواجد حالياً
      رقم العضوية : 79866
      تاريخ التسجيل : 27/3/2008
      مجموع المشاركات: 21,153
      مجموع المواضيع: 12237
      المدينة: جدة غير

      افتراضي المفاهيم الأساسية للـ OOP من خلال لغة ++C >> مفهوم الكلاس Class

      تحدثنا سابقا عن مقدمة تاريخيةعن الـ OOP و ذكرنا أن دراستنا لها ستكون عن طريق لغة سي بلس بلس ، و كنا قد ذكرنا أن الفكرة الأساسية في الـOOP هي أن البرنامج يُبنى على شكل مجموعة من الكائنات،...




      مفهوم الكلاس Class :




      لإنشاء الكائنات في لغة سي بلس بلس نستخدم نوعا جديدا من أنواع البيانات يسمى بالكلاس class



      و هذه الكلمة Class ترجمتها بالعربية (الطبقة) و في بعض المصادر تترجم بـ(الفئة) - أو (التصنيف) في مصادر أخرى ، و قد فضلت هنا استخدام الكلمة نفسها (الكلاس) لعل هذا يكون أسهل و أوضح.




      بعد إنشاء الكلاس - كما سنرى بعدقليل - يمكننا عمل عدد غير محدود من الكائنات - حسب الحاجة - من هذا الكلاس فالكلاس هو نوع بيانات جديد ..




      لتوضيح الفكرة :



      إذا كنت أريد الإعلان عن متغير اسمه SomeVariable من النوع integer فإن ذلك يتم كالتالي :




      كود:
      int SomeVariable;




      و كذلك بنفس الطريقة نقوم بالاعلان عن الكائنات ، فمثلا إذا كان لدي كلاس اسمه Person و أردت الاعلان عن كائن :




      كود:
      Person Ali;




      فـ Ali هو كائن من كائنات الكلاس Person



      قصدي مما ذكرت أن الكلاس هو نوع بيانات جديد يحتوي على البيانات (متغيرات) و عملياتها (دوال) معا و كل كائن يحتوى داخله على هذه البيانات و على عملياتها .



      بطريقة أخرى الكلاس هو مثل المخطط الذي يوضح طريقة بناء مبنىً ما أما الكائن فهو المبنى نفسه و الذي بُني حسب المخطط.




      إذن كيف يمكن الإعلان عن الكلاس و مم يتركب ؟




      الجواب:



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



      كود:
      struct Person { char name[30]; char address[30]; int ID; //...; }Person;



      أعلنا هنا عن سجل إسمه Person يحتوي داخله على مجموعة من المتغيرات (الحقول) ... أما الكلاس فهو يحتوي على متغيرات تسمى عناصربيانات بالإضافة إلى الدوال التي تعمل على هذه المتغيرات و تسمى بالدوال الأعضاء - مع ملاحظة أن بعض الكلاسات تحتوي على متغيرات فقط - وللإعلان عن الكلاس نستخدم الكلمة المحجوزة Class ثم اسم الكلاس و هذا يسمى بالرأس، ثم بقية المتن وتكون بين قوسين { }



      (مثال 1): الإعلان عن كلاس اسمه Person لإدخال بيانات أشخاص و عناوينهم مع رقم فريد لكل شخص:



      كود:
      1. Class Person{ 2. int ID; 3. char address[30]; 4. char name[30]; 5. public: 6. void EnterData(void); 7. void PrintData(void); 8.};



      ملاحظة : الأرقام في المثال أعلاه - و كل الأمثلة التالية - هي للتوضيح في التحليل التالي و ليس من صلب الكود.



      ملاحظة أخرى: أنا أستخدم بورلاند سي بلس بلس الاصدار الخامس في تحرير و ترجمة الكود فإذا كنت تستخدم مترجما أخر فلا بأس مع مراعاة الفروق ، كما يفضل عمل مجلد منفصل لكل مثال لسهولة المراجعة فيما بعد.




      تحليل:



      1. هذا رأس الكلاس و فيه استخدمنا الكلمة المحجوزة class ثم اسم الكلاس Person و يشترط في تسمية الكلاس نفس الشروط المطلوبة عند تسمية المتغيرات في لغة سي بلس بلس مع مراعاة أن الأسماء ذات المعاني لها أهمية كبيرة و خاصة في البرامج الكبيرة التي تكثر بها الكائنات و المتغيرات.
      2. ~ 4. هذه عناصر البيانات و هي متغيرات يقوم المبرمج بتعريفها حسب الهدف من إنشاء الكلاس .
      5. الكلمة المحجوزة public: هذه الكلمة مهمة جدا و هي ضمن ثلاث كلمات محجوزة تميز الكلاس عن السجل:



      Private:

      أي خاص و هذه الكلمة تفيد المترجم بأن كل ما يليها من الأعضاء (متغيرات أو دوال) محمي من الوصول إليه من خارج الكلاس – و سيأتي مزيد بيان عند الكلام عن مفهوم الكبسلة بحول الله - .



      Protected:

      أي محمي و ذلك يعني أن ما يليها من الأعضاء (متغيرات أو دوال ) محمي من الوصول من خارج الكلاس و لكن يمكن الوصول إليها عن طريق الكلاسات المشتقة – كما سيأتي عند الكلام عن التوريث ( الوراثة) - .



      Public:

      و هي الكلمة المستخدمة في هذا المثال و تعني : عام ، أي كل ما يليها من الأعضاء يمكن الوصول إليه من خارج الكلاس ، و هنا لا بد من تسجيل فرق مهم من الفروق بين الكلاس و السجل:
      أعضاء السجل تكون عامة بحيث يمكن الوصول إليها مباشرة بعكس الكلاس فالوضع الافتراضي لعناصره أنها خاصة أي لا يمكن الوصول إليها من خارج الكلاس إلا بوضعها تحت الكلمة public: ، و لذلك - في هذا المثال - كل ما قبل public فهو إفتراضيا خاص لا يمكن الوصول إليه إلا عن طريق الدالتين الموضوعتين في القسم العام ، و بالتالي إذا جربت السطر التالي – في الدالة main – لن يقبله منك المترجم :

      كود:
      Ali.ID=1;

      - حيث Ali هو كائن من كائنات الكلاس Person – فعندم الترجمة سيعطيك المترجم رسالة خطأ شبيهة بالتالي:



      Error: PersonExample.cpp(136,16):'Person::ID' is not accessible


      مما يعني أنه لا يمكن الوصول لهذا العضو ( المتغير ) مباشرة إلا عن طريق الدوال المحددة لذلك .

      هذه خاصية مهمة جدا توفر الحماية لبيانات الكائن من أن يتم تعديلها من الخارج بطريقة غير مقصودة و هذه من خواص الـOOP المهمة.

      و قد يقول قائل : ما دام أن الأعضاء يكونون على الوضع خاص تلقائيا فلماذا نستخدم الكلمة المحجوزة private: ؟ الجواب : من الأفكار الجيدة أن تستخدم الكلمة private: لتوضيح مدى الأعضاء (متغيرات أو دوال ) و ذلك لتجنب جعل الأعضاء الخاصة عامة بدون قصد و لذلك من الأفضل أن يكون مثالنا كالتالي:


      كود:
      class Person{ private: int ID; char address[30]; char name[30]; public: void EnterData(void); void PrintData(void); };

      مع ملاحظة أن الترتيب ليس شرطا في صحة تعريف (الإعلان عن) الكلاس بحيث يمكن أن نعلن عن الكلاس السابق كالتالي:
      كود:
      class Person{ public: void EnterData(void); void PrintData(void); private: int ID; char address[30]; char name[30]; };



      فكما تلاحظ تم وضع الدوال في القسم العام أولا و في هذه الحالة سيظل مفعول كلمة public: ساريا إلى نهاية الكلاس أو حتى استخدام كلمة أخرى تبطل مفعولها لذلك استخدمنا الكلمة private: قبل الأعضاء الذين نريد إخفاءهم.




      6. هذا السطر يحوي رأس دالة عضو (member function) و تسمى أيضا بالطُرق أو العمليات (methods or operations ) و هذه الدالة و التي تليها ستكونان الواجهة التي سنتعامل بها مع بيانات الكلاس (الكائن) لذلك تم وضعها في القسم العام.



      هذه الدالة هي التي ستقوم بإدخال البيانات لذلك سميناها EnterData و هي لا تعيد قيمة ، أو بالأصح تعيد قيمة من النوع void (لا شيء) كما أننا لا نمرر لها أي متغيرات.




      7. هذا السطر كذلك يحوي رأس دالة عضو أخرى تقوم بعرض البيانات التي تم إدخالها و سميناها لذلك PrintData و هي كذلك تعيد قيمة من النوع void كما أنها لا تستقبل أي متغيرات (وسائط ) من الخارج.







    2. #2
      وَزِيَر تَوُّهْ نَشَأَ فِيِ التَعّلِيِّم
      الصورة الرمزية whaleman
      الحالة : whaleman غير متواجد حالياً
      رقم العضوية : 217867
      تاريخ التسجيل : 1/12/2009
      مجموع المشاركات: 11
      المؤهل التعليمي: طالب كلية
      الجنس: ذكر

      افتراضي

      الله يجزاك خير

      شرح واضح ومبسط ^^


    إعلانات


    المواضيع المتشابهه

    1. بعض المفاهيم الأساسية للدائرة
      بواسطة رياض الفراشات في المنتدى الهندسة
      مشاركات: 6
      آخر مشاركة: 05 Dec 2010, 11:52 PM
    2. مشاركات: 5
      آخر مشاركة: 05 May 2010, 02:44 AM
    3. المفاهيم الأساسية للـ oop من خلال لغة ++c .. دوال البناء و الهدم .
      بواسطة كبريـ انثى ـاء في المنتدى علوم الحاسب
      مشاركات: 4
      آخر مشاركة: 30 Jan 2010, 11:03 AM
    4. المفاهيم الأساسية للـ oop من خلال لغة ++c >> تعريف الكلاس 2
      بواسطة كبريـ انثى ـاء في المنتدى علوم الحاسب
      مشاركات: 4
      آخر مشاركة: 30 Jan 2010, 11:00 AM
    5. المفاهيم الأساسية للـ oop من خلال لغة ++c مقدمة
      بواسطة كبريـ انثى ـاء في المنتدى علوم الحاسب
      مشاركات: 0
      آخر مشاركة: 15 Nov 2009, 09:52 PM

    الكلمات الدلالية لهذا الموضوع