أيمن العرباوى
مفهوم الكلاس Class 15

عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
أيمن العرباوى
مفهوم الكلاس Class 15

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


منتدى أيمن العرباوى إسلاميات وبرامج والعاب وصور ومواقف ونكت وأقسام أخرى التى تفضلها
 
الرئيسيةالأحداثالمنشوراتأحدث الصورالتسجيلدخولكونكر تهييس
المواضيع الأخيرة
» shortcut linke
مفهوم الكلاس Class Emptyالأربعاء 11 يناير 2023 - 1:00 من طرف Admin

» دعم كواي
مفهوم الكلاس Class Emptyالخميس 3 نوفمبر 2022 - 21:47 من طرف Admin

» تصفح المواقع التي زرتها من قبل بدون نت
مفهوم الكلاس Class Emptyالأحد 11 سبتمبر 2022 - 3:07 من طرف Admin

» لعبة جاتا 2018 للتحميل روابط شغالة مباشر ويحجم خيالى GTA IV PC Version 2018
مفهوم الكلاس Class Emptyالجمعة 17 يونيو 2022 - 23:24 من طرف Admin

» موقع gslink مصارى
مفهوم الكلاس Class Emptyالخميس 18 أبريل 2019 - 19:46 من طرف Admin

» 10 طرق تجعل حياتك أسهل بهذه الطرق .. تعلم وفكر واستمر !!
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:45 من طرف Admin

» كيف تصنع اشياء من حاجات تافهة
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:32 من طرف Admin

» حل مشكلة امتلاء القرص c الحل الشامل و الأكيد مع توفير الكثير من المساحة
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:28 من طرف Admin

» باقى مين !!.؟ حكاية مؤثرة
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:26 من طرف Admin

» ماذا بعد الموت تصوير
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:23 من طرف Admin

» أغرب 9 معلومات عن جسم الإنسان لن تخطر على بالك بالتفصيل
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:20 من طرف Admin

» يقال دائماً من 'سابع المستحيلات' فهل تعرف الستة الباقيات 6 لا تعرف عنها اى شئ
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:18 من طرف Admin

» نغمة اسلامية | الصلاة والسلام عليك يا حبيب رب العالمين !!!
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:10 من طرف Admin

» القصيدة المقبولة | أخير خلق الله محمد صلى الله عليه وسلم !!
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:09 من طرف Admin

» أقوى رنة ونغمة أطفال جميلة | نغمة مرتفعة جدا جدا !!
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 18:01 من طرف Admin

» جدول لمن ترك رفع الاثقال ويريد العودة له مع اشكال التدريب لسليم !
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 17:58 من طرف Admin

» خطوات بسيطة لن تصدق حل مشكلة توقف التصفح واليوتيوب والفيس بوك وظهور علامة القفل
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 17:56 من طرف Admin

» كابتن طائرة يغير رأيه أثناء الهبوط بسبب الرياح
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 17:51 من طرف Admin

» نغمة مرتفعة جدا ابا الانبياء صوت لمشارى بن راشد العفاسي elarabaway
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 17:50 من طرف Admin

» copy cd نسخ اسطوانة صوت
مفهوم الكلاس Class Emptyالإثنين 2 يوليو 2018 - 17:47 من طرف Admin

دخول
اسم العضو:
كلمة السر:
ادخلني بشكل آلي عند زيارتي مرة اخرى: 
:: لقد نسيت كلمة السر
احصائيات
هذا المنتدى يتوفر على 1497 عُضو.
آخر عُضو مُسجل هو shicono1 فمرحباً به.

أعضاؤنا قدموا 950 مساهمة في هذا المنتدى في 568 موضوع
تسجيل صفحاتك المفضلة في مواقع خارجية
تسجيل صفحاتك المفضلة في مواقع خارجية reddit      

قم بحفض و مشاطرة الرابط أيمن 0181911842 على موقع حفض الصفحات

قم بحفض و مشاطرة الرابط أيمن العرباوى على موقع حفض الصفحات

 

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

اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
الزعيم "صاحب المنتدى"
الزعيم
Admin


رقم لعضوية : 1
احترام قوانين المنتدى : 100%

نقاط : 60122

مفهوم الكلاس Class Empty
مُساهمةموضوع: مفهوم الكلاس Class   مفهوم الكلاس Class Emptyالخميس 7 فبراير 2013 - 19:38

مفهوم الكلاس 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 كما أنها لا تستقبل أي متغيرات (وسائط ) من الخارج.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
مفهوم الكلاس Class
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

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