" [بسم الله الرحمن الرحيم "
ما هي فائدة الكونستراكتر ؟
أتمنى الإجابة ضروري
" [بسم الله الرحمن الرحيم "
ما هي فائدة الكونستراكتر ؟
أتمنى الإجابة ضروري
ال constructor ليس متعلق بالجافا لكنه متعلق بالبرمجة الكائنية oriented object بصفة عامة
هذا موضوع يتكلم عن البرمجة الكائنية بالجافا /index.php?showtopic=49569
باختصار، ال constructor يحتوي على الكود الذي يتم تنفيذه في كل مرة يتم بناء كائن جديد بواسطة new
السلام عليكم
ما هو ال constructor((اخاف من الاخ علاء)::
بكون بنفس اسم ال class
هو عبارة عن دالة خاصة special method ليس له return type و لا تقع فى الخطأ المعتاد و نقول يعنى void لالا و لا void,int,double و لا اى حاجة من دى
ماذا يفعل::::
نقوم بوضع قيم للمتغيرات الخاصة بالفئة او class بداخلة >>>>> initialization
و ان لم تقوم بعمل constructor داخل الفئة الخاصة بك
سيقوم البرنامج بعمل default construcor تلقائيا و لكنه فى هذة الحالة سيكون فارغ لا يحتوى على اى متغيرات
اردت الافادة و لو فيه اى خطأ بكلامى ارجو التعليق من الاخوة الاعضاء
بالتوفيق
تم تعديل هذه المشاركة بواسطة اسراء شلبى في 2 أبريل 2010 في 18:24


اقتباسسيقوم البرنامج بعمل default construcor تلقائيا
أتوقع أن هذا موجود فقط في Java، أما في ++C فلا أظن أنها تنشئ Constructor افتراضي. بالنسبة ل #C ليس لدي فكرة.
اعتقد ان كلامك صح اخى الكريم
كما يوجد ايضا فى c++ يوجد deconstructor حيث يقوم بمسح جميع القيم التى بداخل المتغيرات و لا يوجد فى الجافا


أظن أنا كلا من الجافا و السي شارب لديهما نفس الخاصيه,,, "Default Constructor"
بالنسبة للأخ كاتب الموضوع يكفي أن تقول constructor حتى نفهم
أتمنى أن لا تكتب الكلمة باللغة العربية
احم احم
بدأت آخذ طابع الأخ رفعت إسماعيل وبقوة :lol:
تحياتي
اقتباسكما يوجد ايضا فى c++ يوجد deconstructor حيث يقوم بمسح جميع القيم التى بداخل المتغيرات و لا يوجد فى الجافا
بل اسمه Destructor !
ولا يقوم بمسح القيم التي بداخل المتغيرات، بل نقوم نحن بكتابة كود إفراغ الذاكرة من المتغيرات
وفي جافا يقوم الـ Garbage Collector بهذه المهمة
للعلم فقط
يكون شكل ال default construcor في الجافا
public ClassName(){
super();
}تم تعديل هذه المشاركة بواسطة Mohammed Mshari Ersan في 3 أبريل 2010 في 00:19
كيف ؟؟ و انا اصلا لم اقم بعمل constructor ??
و البرنامج يقوم تلقائيا بعمل constructor يعنى لم يوجد شىء بناديه؟


اقتباسsuper() تقوم بالمناداة على ال constructor الخاص بال class الأم
الـ Class الأم أم الأب :)
أعتقد أن هناك مشكلة في هذه الجملة أخ Speed_Of_Light
اقتباسولا يقوم بمسح القيم التي بداخل المتغيرات، بل نقوم نحن بكتابة كود إفراغ الذاكرة من المتغيرات
وفي جافا يقوم الـ Garbage Collector بهذه المهمة
لأنه وعلى حسب علمي يوجد garbage collector في c++
تحياتي
طيب معلومة اضافية
حتى وان قمت بتعريف الConstructor الخاص بصفك مثل :
public ClassName(){
x=10;
y=50;
}فأن الشكل الذي سيتكون بعد الcompile من قٍٍبل ال jvm
فيسكون شكله كالتالي:
public ClassName(){
super();
x=10;
y=50;
}حيث بالفعل يتم استدعاء ال constructor الخاص بالصف الام super class في اول استدعاء للconstructor الخاص بصفك
، غريب...، أنا أسمي الصف الأعلى بـ الصف الأب :happy:اقتباس...استدعاء ال constructor الخاص بالصف الام super class في...
يبدو أن هناك أحداً متنبهاً هنا :D
شكراً على الملاحظة
سأقتبس من العمة wikipedia :
اقتباسSome languages, like Ada, Modula-3, and C++/CLI allow both garbage collection and manual memory management to co-exist in the same application by using separate heaps for collected and manually managed objects
الترجمة:
بعض اللغات مثل Ada، Modula-3 و C++/CLI تسمح بوجود إدارة يدوية للذاكرة وجمع النفايات "garbage collection" معاً في نفس التطبيق باستخدام heaps منفصلة للأغراض المدارة يدوياً وتلك المدارة بجامع النفايات Garbage Collector
المصدر: http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
إذاً هناك عدة نقاط:
- أولاً لاحظ أن لغة C++/CLI تمكن من كتابة كود مُدار وغير مدار managed & unmanaged code
- ثانياً هذا لا ينطبق على كل تحقيقات implementations اللغة، ويمكن القول بشكل عام أنه لا يوجد دعم مدمج لجمع النفايات في C++
- ثالثاً (وأهم نقطة) أن الكلام كان على الـ deconstructor وهو الذي يتم تنفيذه لإنهاء دورة حياة الغرض واستخدامه ينحصر في ذلك
تخيل يا اخي انك ذهبت ل شراء تليفزيون وعندما سالك البائع عن نوع التليفزيون اجبته بانك تريد تليفزيون غير محدد نوعه وعندما سالك عن مقاسه اجبته بانه لا يهم الان مقاسه وعندما سالك عن لونه وعدد القنوات ونوع التكنولوجيا اجبته انك تريد تليفزيون كل خواصه مبهمة وغير محددة . هل يستطيع البائع ان ياتي لك بمثل هذا التليفزيون ؟؟؟ تليفزيون بدون ماركة او مقاس او لون وغير معلومة عدد قنواته ولا نوع التكنولوجيا المستخدمة في صناعته وغير معلوم ايا من خواصه ؟؟ هل يستطيع ان ياتي لك بالعدم ؟؟؟ بنفس المنطق باعتبار هذا التليفزيون كائن (Object) يجب عند احضاره ان نحدد الشكل الذي يكون عليه التليفزيون والا سيكون غير ممكنا الحصول عليه . وهذه فائدة دالة البناء (Constructor ) فهي التي ستحدد الشكل الذي سيكون عليه الكائن (Object )عند بنائه ولذلك فيجب استدعائها عند بتاء الكائن (Object ) ونظرا لحساسيتها واهميتها كما راينا فقد تم تمييزها باعطائها نفس اسم (Class) مع وضع قيد انه يجب استدعائها اثناء بناء ال كائن (Object ) .
تم تعديل هذه المشاركة بواسطة a_abdalnby في 3 أبريل 2010 في 23:50