الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما الفرق بين الطبقة والكائن (class / Object)

بدأه Delphawi في 30 نوفمبر 2007 · 9 رد · 7,368 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

كان هناك سؤال محيرني منذ فترة طويل , وهو ما الفرق بين Calss و Object ؟؟؟

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

اقتباس
If A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut

Albert Einstein

مدخل إلى برمجة وتصميم الألعاب : كيف أبدأ ؟

#2

ال كائن object : تمثيل لأي شي في الواقع، مثل سياره ، دراجه ، منزل ، حدث ‘ رقم

الفئه class : هو المخطط الرئيسي لبناء الكائن، أي أنه الهيكل الذي يستخدم لإنشاء كائنات.

#3

ببساطة ال object بيكون مستخلص من ال class

بمعنى عندنا كلاس اسمه غرفة اى غرفة خصائصا حيطان و ارضية و فرش

و عندنا اوبجكت اسمه غرفة المعيشة و هى غرفة ايضا و لها حيطان و ارضية و فرش بالاضافة لتلفزيون و كنب و كراسى و هكذا قيس على اى شئ

اتمنى التفسير يكون واضح

#5

بسم الله السميع العليم

ماهو الفرق بين الـ Object و الـ Class سؤال من النوع السهل صعب الاجابة فهو بسيط جدا تشعر بذلك و يصعب الحديث عنه و توصليه للآخرين !

هل يمكنك اخي ان تخبرني بالفرق بين آلة الختم Stamp و الختم نفسه الذي تراه على الورقة المطبوعة !

post-40889-1197357908_thumb.jpg

ففي الصورة السابقة لايمكنك ان تطبع ختما غير الذي جاء في الآلة وهو كلمة FRONT اما كم مرات يمكنك ان تطبع على الورقة و اين يمكنك ان تستخدم الختم فهو غير محدود فيمكن ان تطبع ختم هنا و هنا و هناك وجميعها (بنفس الشكل) لماذا بنفس الشكل؟ ....... لأنها صممت على هذا الاساس.

وهذا هو الفرق بين الـ Class و الـ Object .... (اشعر بأني غبيا !! ... اتكلم عن الختم و الورقة ثم اقول هذا بالضبط الفرق بين الـ class و الـ object !!).

في الحقيقة ان الـ Class في مثالنا هو آلة الختم و الـ Object هو الختم نفسه على الورقة ... خذ المثال التالي:

Dim A As New Form1
Dim B As New Form1

A.Show()
B.Show()

فمثلا تخيل انك تريد تكوين متغيرات من Form1 .... لاحظ ان Form هي الكلاس و ان A و B هما الكائنات Objects فهما لايمكن ان يحتويا على خصائص غير الموجودة في Form1 ولكن يمكن ان تغير لون هذا او هذا او تعمل بهما ما تشاء فما هما إلا نسخ من الاصل.

لاحظ انه على الرغم من انك لديك فورم واحدة هي Form1 فان لديك متغيرين (او ثلاثة او اكثر ... ) (Instances) من هذه الكلاس.

حقيقة لن احاول قرأة ما كتبته في الاعلى لأنني اكيد من انني لن افهم ما كتبته !! .. لذا اعانك الله و سهل لك إستيعابه

السلام عليكم و رحمة الله و بركاته

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#6

مشاء الله عليك استاذ رغيد ربنا يخليك لكل المبرمجين اليمنين والعرب

تحياتي لك استاذ رغيد ..

#7

السلام عليكم

ردك جميل يا رغيد ما شاء الله :)

#8

السلام عليكم و رحمة الله و بركاته

شكرا شباب ... اتمنى ان يكون واضع السؤال قد نال مبتاغاه او على الاقل اقترب من ذلك

تحياتي

السلام عليكم و رحمة الله و بركاته

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#9

انا عملت برنامج في console كان بودي ارفعه هنا بس للاسف معمول بالسي شارب بس

فكرته تنفع تتشرح لتوضيح الفرق بين class and object والفكرة هي رسم زرار لالة حاسبة على الدوس ورسم زرار لاحدى العمليات الحسابية في نفس الالة الحاسبة ورسم مربع لاظهار الارقام المكتوبة والنتائج للالة الحاسبة كما في الويندوز

post-167492-1220627874_thumb.jpg

بالتالي نأتي لعمل ما يسمى الكلاس class بالطبع هايكون فيه السمات الرئيسية للزرار بتاع الارقام مثلا الرقم المكتوب عليه وهايترسم فين بالظبط في الشاشة ولونه لما يكون مختار ولونه لما يكون غير مختار

كلاس زرار الارقام

{

  -- خاصية القيمة ( اي قيمة الرقم المكتوب عليه وذلك للتعامل معها عند الضغط على  زر الادخال من لوحة المفاتيح  والتعامل مع القيمة دي في الحسابات )

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

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

  -- طريقة رسم الزرار ( ستأخذ هذه الطريقة متغيرات مثل " الرقم الذي سيكتب على الزرار , بعد الحد الايسر للزرار عن يسار نافذة الالة الحاسبة , بعد الحد الاعلى للزرار عن الحد الاعلى لنافذة الالة الحاسبة )

  -- طريقة تلوين الزرار ( ستأخذ هذه الطريقة متغيرات مثل " لون الرسم , لون الخلفية " )

  -- طريقة تلوين الزرار بلون افتراضي (ولن تأخذ هذه الطريقة اي متغيرات بل ستنفذ كود معين لرسم الزرار  بلون افتراضي)

}

كلاس زرار العمليات الحسابية : يرث من كلاس زرار الارقام

{

  

  -- خاصية رمز العملية الحسابية ( تعطي هذه الخاصية رمز العملية الحسابية المرسوم على الزرار )

***** لاحظ هنا ان عملية الوراثة جنبتنا كتابة طرق الرسم مرة اخرى

}

كلاس مربع الارقام : يرث من كلاس زرار الارقام

{

  -- طريقة لتحديد عدد الارقام التي يمكن ان تظهر بالمربع ( مثلا تجد هناك الة حاسبة يمكن ادخال 8 ارقام فقط وهناك اخرى يمكنك ادخال عدد كبير من الارقام كما يمكنك كتابة العمليات الحسابية في المربع )

***** أيضا عملية الوراثة جنبتنا كتابة طرق الرسم في هذا الكلاس ايضا

}

كده احنا كتبنا الكلاسات classes اللي احنا محتاجينها في البرنامج بس ما فيش برنامج حتى الان

يعني فين ازرار الارقام المختلفة 1 ,2 ,3 ,4 .... وازرار العمليات الحسابية + , - , × , ÷ , ....

كل ده مش موجود لأن لسه ما عملنا كائنات تجسد هذه الازرار المختلفة سواء للارقام او العمليات الحسابية

هنا يأتي دور object أنه تجسيد حقيقي للكلاس ولاكمال التطبيق نأتي لعملية انشاء الكائنات من هذه classes كالاتي

دالة البرنامج الرئيسي

{

 -- انشئ زرار جديد من النوع زرار الارقام

   -- ارسمه عن طريق دالة الرسم واجعله للرقم 1 وعلى بعد 10 خطوات من الحد الايسر للنافذة و10 خطوات للحد الاعلى للنافذة

   -- ارسمه باللون الافتراضي عن طريق دالة الرسم باللون الافتراضي

-- انشئ زرار جديد من النوع زرار الارقام

   -- ارسمه عن طريق دالة الرسم واجعله للرقم 2 وعلى بعد مجموع الحد الايمن للزرار الاول و  5 خطوات اضافية  وعلى نفس الحد الاعلى للزرار الاول

   -- ارسمه باللون الافتراضي

-- انشئ زرار ثالث من النوع زرار الارقام

  -- ارسمه عن طريق دالة الرسم واجعله للرقم 3 وعلى بعد مجموع الحد الايمن للزرار الثاني و5 خطوات اضافية وعلى نفس الحد الاعلى للزرار الثاني

   -- ارسمه باللون الافتراضي

-- انشئ زرار رابع من النوع زرار الارقام

   -- ارسمه عن طريق دالة الرسم واجعله للرقم 4 وعلى نفس بعد الحد الايسر للزرار الاول واجعل الحد الاعلى له على بعد مجموع الحد السفلي للزرار الاول و 5 خطوات اضافية

   -- ارسمه باللون الافتراضي

وهكذا نكمل باقي ازرار الارقام

-- انشئ زرار جديد من النوع زرار العمليات الحسابية

   -- ارسمه عن طريق دالة الرسم واجعله لعملية الجمع + وعلى بعد الحد الايمن للزرار 3 بالاضافة الى 7 خطوات اضافية وعلى نفس بعد الحد الاعلى للزرار 3

  -- ارسمه باللون الافتراضي

-- انشئ زرار آخر من النوع زرار العمليات الحسابية

  -- ارسمه عن طريق دالة الرسم واجعله لعملية الضرب × وعلى نفس بعد الحد الايسر لزرار الجمع وعلى بعد الحد السفلي لزرار الجمع بالاضافة الى 5 خطوات اضافية

  -- ارسمه باللون الافتراضي

وهكذا نرسم باقي ازرار العمليات الحسابية

}

لاحظ اننا كتبنا الكلاس مرة واحدة سواء كان لزرار الارقام او زرار العمليات الحسابية ولكن انشأنا منهما ازرار كثيرة كل واحد له قيمة وله مكان محدد غير الاخر كما اردنا

اذا كانت الفكرة وصلت واصبح الفرق بين Class and Object واضح يبقى ما فيش داعي اكمل باقي مخطط البرنامج

الا اذا اردت ذلك لمزيد من التوضيحpost-167492-1220627874_thumb.jpg

تم تعديل هذه المشاركة بواسطة Prof.Mendl في 5 سبتمبر 2008 في 18:22

#10

ممككن بس بعد اذنكوا ازاي اعرف اوبجيكت الكود بس يعني ازاي اخد اوبجيكت من كلاس ؟؟؟

مواضيع مشابهة