InstagramTwitterSnapChat


 
وصف

العودة   منتديات سكاو > الكليات الجامعية > منتدى كلية الحاسبات وتقنية المعلومات > المنتدى العام لكلية الحاسبات وتقنية المعلومات
التسجيل مشاركات اليوم البحث
   
   


المنتدى العام لكلية الحاسبات وتقنية المعلومات قسم خاص بالمواد العامة و الطلاب غير المتخصصين بكلية الحاسبات وتقنية المعلومات

[شرح][CPCS 203] أفهم المُشيدات أو دالة البناء (Constructor)

المنتدى العام لكلية الحاسبات وتقنية المعلومات

إضافة رد
 
أدوات الموضوع إبحث في الموضوع انواع عرض الموضوع
منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
  #1  
قديم 23-04-2010, 05:22 PM
الصورة الرمزية Mr.Ahmad

Mr.Ahmad Mr.Ahmad غير متواجد حالياً

عضو هيئة تدريس

 
تاريخ التسجيل: Jul 2008
الكلية: كلية الحاسبات وتقنية المعلومات
التخصص: IT
نوع الدراسة: عضو هيئة تدريس
المستوى: متخرج
البلد: جــــدة
الجنس: ذكر
المشاركات: 2,477
Skaau.com (11) [شرح][CPCS 203] أفهم المُشيدات أو دالة البناء (Constructor)


بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
__________________________________________________ ______________________________
* مــا شاء الله تبارك الله *
الحمد لله عدد ما خلق , الحمد لله ملء ما خلق , الحمد لله عدد ما في السموات وما في الأرض , الحمد لله عدد ما أحصى كتابه ، والحمد لله على ما أحصى كتابه ، والحمد لله عدد كل شيء والحمد لله ملء كل شيء .
اللهم صل على محمد وعلى آل محمد كما صليت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد . اللهم بارك على محمد وعلى آل محمد كما باركت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد.
لا إله إلا الله وحده لا شريك له الملك وله الحمد وهو على كل شيء قدير .
سبحـــــــان الله وبحمده … سبحــان الله العظيم
__________________________________________________ ______________________________


[شرح][CPCS 203] أفهم المُشيدات أو دالة البناء (Constructor)

الدروس السابقة :
http://www.skaau.com/vb/showthread.php?t=185660
[شرح][CPCS 203] أفهم مفهوم الـ global و local و المدى (Scope) !
[شرح][CPCS 203] أفهم الكلمة الأساسية public و private .
[شرح][ CPCS 203 - برمجة 2 ] أفهم عمل الكلمة الأساسية new عند إنشاء كائن (Object) !
[شرح][ CPCS 203 - برمجة 2 ] أفهم مفهوم الفئة (Class) والعناصر (Objects) بكلمات بسيطة
[جافا - Java] شرح صنع ملف تنفيذي (exe) من برامجك المبرمجة بالجافا !

مرحباً بكم أخواني في هذا اللقاء الجديد الذي سنتعلم فيه مفهوم الـمُشيدات أو دالة البناء (Constructor) , وقد تعلمنا بحمد الله في اللقاء السابق مفهوم المدى (scope) ويندرج منه مفهوم الـ global والـ local .

- المفهوم الثالث : المُشيدات أو دالة البناء (Constructor) -

المُشيِد (Constructor) : هو عبارة عن طريقة لا تعيد أي قيمة – ولا حتى void – له نفس أسم الفئة ويمكنه أن يأخذ بارامترات .

يجب أن تملك كل فئة مشيداً , إذا لم تكتب واحداً بنفسك سيولد المترجم (Complier) مشيِداً افتراضياً لك تلقائياً يقوم بتصفير الحقول (Fields) أو (Data members) ذات النوع الرقمي , وإعطاء قيمة null للسلسلة النصية .

يبين المثال التالي الفئة Student مع مشيِد افتراضي لها , يمهد (يعطي) قيمة افتراضية (ابتدائية) للحقول عند إنشاء الكائن بكلمة new :
ملاحظة : يمكنك كتابة مشيِدك الافتراضي بسهولة , فقط أضف طريقة عمومية (public) لا تعيد قيمة لها نفس اسم الفئة .



نتيجة الكود السابق :



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



نتيجة الكود السابق :



كما نلاحظ , قام المترجم (Complier) بتوليد مشيد افتراضي قام بتصفير الحقول ذات النوع الرقمي وإعطاء قيمة (null) للسلسة النصية .
ملاحظة : (null) تعني أن السلسة النصية فارغة .

المشيدات تذكرنا عند شراء جهاز جديد أو تثبيت نظام ويندوز جديد (Format) ، حيث أنه يضع لنا النظام إعدادات افتراضية لكل الخصائص من ذلك خلفية النظام وأيقونات سطح المكتب وإعدادات افتراضية للإنترنت إكسبلورر وغيرها الكثير , تستطيع بعد ذلك تغيير الإعدادات كما تريد من لوحة التحكم أو من خيارات البرامج .

وكما هو الحال , نستطيع تغيير قيمة الحقول الافتراضية التي وضعها المشيد , باستخدام الطُرق العمومية التي كتبناها , مثلاً في الكود السابق , توجد طريقة اسمها (setName) لتغيير قيمة الحقل name وكذلك طريقة اسمها (setID) لتغيير قيمة الحقل id ، وطُرق أخرى لجلب قيمة كل حقل (getName) و (getID) وطريقة أخرى أسمها (Print) تقوم بطباعة قيمة الحقل name والحقل id . وهذا مثال على الكود السابق :



نتيجة الكود السابق :



نلاحظ , أن الطالب الثاني لم نغير سوى قيمة رقم الـ id ولم نغير قيمة اسمه name , لذلك لم تتغير القيمة الافتراضية للحقل name الذي وضعها المشيد (no name) للطالب الثاني .

=-=-=-=-=-=-=-=-=-=

تحميل المشيدات تحميلاً زائداً (Overloading Constructors) :

لفهم هذه الجزئية من الدرس بسهولة , أنصحك بقراءة الدرس التالي :
[شرح][CPCS 203] أفهم تحميل الطرق تحميلاً زائداً (Overloaded)

فكر بالكود التالي :



هناك مشكلة , كل الكائنات الجديدة المنشئة من فئة Student ستكون قيمة حقولها واحدة ولا تتغير , لأن المشيد الافتراضي سيمهد (يضبط) الحقل name عند قيمة (“no name”) والحقل id عند قيمة (0) لكل الكائنات المنشئة من هذه الفئة , ولا توجد طريقة لتغيير قيم الحقول بعدما يتم تمهيدها من قبل المشيد الافتراضي وكذلك الحقول مُعَلمة كـ private لذلك لا يمكن تغيير قيمتها من خارج فئتها . إذاً ما الحل ؟ نريد حل لا يستخدم الطرق لتغيير قيمة الحقول مثل (setName) و (setID) لا نريدها في الحل ؟!

هناك وسيلة لحل هذه المشكلة هي بإدراك أن المشيد هو مجرد نوع خاص من الطُرق – أي انه ليس له نوع إعادة – وأنه – ككل الطرق - يمكن تحميله تحميلاً بشكل زائدا . أي أنه يمكنك كتابة إصدارات مختلفة للمشيد , مثل إصدار يقبل بارامتر وإصدار آخر يقبل نوع آخر من البارامتر أو يقبل أكثر من بارامتر واحد .

هذا مثال على البرنامج السابق لتحميل المشيدات تحميلاً زائداً :





نتيجة الكود السابق :



=-=-=-=-=-=-=-=-=-=

نختم هذا الدرس بعدة ملاحظات :

- المشيد الافتراضي (Default constructor) هو المشيد الذي لا يأخذ أي بارامترات . سواء ولده المترجم (compiler) لك أو كتبته بنفسك, فهو لا يزال المشيد الافتراضي.
- إن لم تُعلم المشيد كعمومي (public) وعلمته كخصوصي (private) ، فلا يمكنك استعماله خارج فئته , وبالتالي لن يمكنك إنشاء كائن جديد من خارج هذه الفئة بواسطة هذا المشيد الخصوصي . ومن استخدامات المشيد الخصوصي إذ كنت تريد منع إنشاء كائنات جديدة من هذه الفئة من خارجها ، فقط يتم إنشاء كائنات جديد من هذه الفئة داخلها .
- أنتبه ! إذا كتبت مشيداً للفئة , لن يولد لك المترجم (compiler) مشيداً افتراضياً . لذا، إذا كتبت مشيدك بحيث يقبل بارامتر واحداً أو أكثر وكنت تريد أيضاً مشيداً افتراضيا – لا يقبل أي بارامتر – , سيكون عليك كتابة المشيد الافتراضي بنفسك .
- ترتيب المشيدات في الفئة غير مهم / يمكنك تعريفها في أي ترتيب يعجبك . أي أنه لا يلزم كتابة المشيدات في بداية الفئة أو قبل كتابة طرق الفئة .


__________________________________________________ ______________________________


لا تنسونا من دعائكم .
وتمنياتي لي و لكم بالتوفيق,,,

 


توقيع Mr.Ahmad  

سبحان الله وبحمد ,,, سبحان الله العظيم
الحمد لله كما ينبغي لجلال وجهه وعظيم سلطانه .
اللهم صل على محمد وعلى آل محمد كما صليت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد . اللهم بارك على محمد وعلى آل محمد كما باركت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد.

 


التعديل الأخير تم بواسطة Mr.Ahmad ; 23-04-2010 الساعة 05:34 PM.
رد مع اقتباس

 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 23-04-2010, 05:28 PM   #2

LOoOoOoLY

أحب التبسم .. والمتبسمين

 
تاريخ التسجيل: Oct 2009
التخصص: IT تقنية معلومات
نوع الدراسة: إنتظام
المستوى: الخامس
الجنس: ذكر
المشاركات: 244
افتراضي رد: [شرح][CPCS 203] أفهم المُشيدات أو دالة البناء (Constructor)

تسلم مستر احمد .. والله شرح 100%

 

توقيع LOoOoOoLY  

 

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


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

 

LOoOoOoLY غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 23-04-2010, 07:48 PM   #3

B.N.A.B

جامعي

الصورة الرمزية B.N.A.B

 
تاريخ التسجيل: May 2009
التخصص: IT
نوع الدراسة: إنتظام
المستوى: السادس
الجنس: ذكر
المشاركات: 84
افتراضي رد: [شرح][CPCS 203] أفهم المُشيدات أو دالة البناء (Constructor)

مشكور على الشرح الأكثر من رائع
وجعله الله في موازين حسناتك

 

B.N.A.B غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 23-04-2010, 08:18 PM   #4

مُنيْـرَه المُطيّـرْيْ

سَمآء لايَمسهآ ع ـآبثونْ

الصورة الرمزية مُنيْـرَه المُطيّـرْيْ

 
تاريخ التسجيل: Feb 2010
التخصص: علومْ حآسبَآتّ CS
نوع الدراسة: إنتظام
المستوى: السابع
الجنس: أنثى
المشاركات: 246
افتراضي رد: [شرح][CPCS 203] أفهم المُشيدات أو دالة البناء (Constructor)

يعّطيكّ آلفّ عآفيــــه

ويجزآكّ ربيّ كلّ خيــرّ

~

 

مُنيْـرَه المُطيّـرْيْ غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 24-04-2010, 06:39 PM   #5

techno

جامعي

الصورة الرمزية techno

 
تاريخ التسجيل: Oct 2009
التخصص: IT
نوع الدراسة: إنتظام
المستوى: الخامس
الجنس: ذكر
المشاركات: 47
افتراضي رد: [شرح][CPCS 203] أفهم المُشيدات أو دالة البناء (Constructor)

اللــه يجزآك الجنـــــــــة .. والله اننا محظوظين حيــل فيــك :) ..

ومالنا الا ندعي لــك وانا اخووك :) ..

الله يعطيك الف عـااااااافية .. كفيت ووفيــت :)

 

توقيع techno  

 

ڪل شئ في » عـيؤني ذآبل « مثل أورآق
آلخريف. غيًم ؤنجؤم وسنآبل , ؤخطوتي فؤق ™ آلرصيًف !

 

techno غير متواجد حالياً   رد مع اقتباس
 

إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

 


الساعة الآن 07:24 PM


Powered by vBulletin® Version 3.8.9 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Ads Organizer 3.0.3 by Analytics - Distance Education

أن كل ما ينشر في المنتدى لا يمثل رأي الإدارة وانما يمثل رأي أصحابها

جميع الحقوق محفوظة لشبكة سكاو

2003-2023