السلام عليكم
عندما نعرف أوبجكت مثلا
;() GradeBook m=new GradeBook
ما هي الفائدة أو ما هي وظيفة الأوبجكت ؟!
اعذروني أخوكم مبتدئ .
:)
السلام عليكم
عندما نعرف أوبجكت مثلا
;() GradeBook m=new GradeBook
ما هي الفائدة أو ما هي وظيفة الأوبجكت ؟!
اعذروني أخوكم مبتدئ .
:)
عليكم السلام :)
عندما تقوم بكتابة هذا السطر
GradeBook m;
فأنت هكذا تقوم بتعريف متغير m من النوع GradeBook
و عندما تقوم بكتابة هذا السطر
m=new GradeBook();
فأنت هكذا تقوم بحجز مكان فى الذاكرة لهذا الكائن او ال object
و ايضا ال object يمكن من استخدام فئة معينة داخل فئة اخرى (من متغيرات او دوال)
و تستطيع اخذ اكثر من كائن من نفس الفئة :)


اضافه الى ما قالته اختنا الكريمه
انت بعد ان تقوم بأخذ كائن الذى فى حالتنا m
هذا الكائن يمكنك بعد ذلك
من استخدام كل المتغيرات والدوال الموجوده فى الكلاس GradeBook
لكن لكى ترى هذه الدوال والمتغيرات يشترط ان تكون public
لاحظ هذه الصوره عندما ذكرت m.
تقريبا انت بتذاكر من كتاب Java How to program :)
بالتوفيق اخى الكريم
أليس m هو مؤشراً إلى الكائن وليس الكائن نفسه؟. وليس m هو من النوع GradeBook
تم تعديل هذه المشاركة بواسطة JDurrah في 11 أكتوبر 2010 في 21:03
اقتباسأليس m هو مؤشراً إلى الكائن وليس الكائن نفسه؟. وليس m هو من النوع GradeBook
امممم....انا درست كده
ياريت توضيح.......... :)


الكود التالي
Person p=new Person("Eric", 25); ينتج عنه في الذاكرة ما يمثله الشكل 
أي أن p ليس هو الغرض نفسه إنما مؤشر عليه يمكن من الوصول للأعضاء العامة public members فيه.ملاحظ أن الغرض موجود في جزء من الذاكرة يدعى heap أما المؤشر له فيوجود في مكدس البرنامج stack.
هنا p يسمى referenceأي مرجع. للاستزادة هذه المقالة.difference-between-object-and-reference-in-java
تم تعديل هذه المشاركة بواسطة JDurrah في 11 أكتوبر 2010 في 23:59
اقتباسأليس m هو مؤشراً إلى الكائن وليس الكائن نفسه؟. وليس m هو من النوع GradeBook
ليس موشرا اخى الكريم
الجافا لا تحتوى على الموشرات
وكمان الـ m هو object لان الجافا pure object oriented
اى حاجه فالجافا عباره عن object من class
لم أقصد بالمؤشر pointer بل قصدت الـ reference..اقتباسليس موشرا اخى الكريم
، لم أقل أن m ليس object بل هو كذلك (كما تفضلت) بل قلت أنه ليس الغرض نفسه.اقتباسوكمان الـ m هو object
شكراً لك على التعقيب.
JDurrah كتب:لم أقصد بالمؤشر pointer بل قصدت الـ reference..
، لم أقل أن m ليس object بل هو كذلك (كما تفضلت) بل قلت أنه ليس الغرض نفسه.
شكراً لك على التعقيب.
معذره فمعنى المؤشر هو الـ pointer وليس الـ reference
لذلك عقبت على هذه الجزئيه
انما بالنسبه لموضوع انه كائن
انت ذكرت
اقتباسوليس الكائن نفسه؟
لكنه فعلا الكائن نفسه ازاى لا يكون الكائن ؟؟؟
لم افهم ما معنى " ليس الغرض نفسه " ؟
شكرا على سعه صدرك وتقبلك للنقاش
اخي محمود ،
الموضوع هو عن كيفية تمثيلها بالنظام
فانت عندما تنشئ اوبجكت مثلاً
GradeBook m =new GradeBook()
فالذي يحدث حقيقة انك تجعل m تشير الى اوبجكت من نوع GradeBook
وعن طريق m يمكنك تغيير خصائص الاوبجكت ..
يمكنك تشبييها بالعلاقه بين التلفاز والريموت كنترول
فعن طريق الريموت كنترول (الرفرنس m ) يمكنك تغيير خصائص التلفاز ( الاوبجكت الحقيقي )
وهذا هو الفرق بين الرفرنس reference والاوبجكت ..
ولذلك الاخJDurrah يقول ان m ليس الكائن نفسه
"m is called "Reference Object
اقتباسيمكنك تشبييها بالعلاقه بين التلفاز والريموت كنترولفعن طريق الريموت كنترول (الرفرنس m ) يمكنك تغيير خصائص التلفاز ( الاوبجكت الحقيقي )
وهذا هو الفرق بين الرفرنس reference والاوبجكت ..
أخي عيسى "سبحان الله" كنت أردت أن أكتب نفس الفكرة تماماً قبل أي رد حتى قبل أن ترد "نفرتاري"، لكن صار عندي مشكلة في النت.
أرجو المعذرة لكن لكل منا طريقته في كيفية فهم الموضوع، ليست الفكرة في المسميات إنما في المفهوم.
المسميات هى التى توضح معلومتك الى الاخرين
لانها هى المتداوله بينا
لكن حصل خير :)
انا اعرف انك تعرفها
لكن نريد التوضيح ليكون الموضوع سهل وبدون اى مشاكل بالنسبه لاى جافاوى جديد :lol:
يا شباب ...
صراحه لم أقرأ ردود بعد هذا الرد من الأخ محمود الكيلاني:
اقتباسليس موشرا اخى الكريمالجافا لا تحتوى على الموشرات
وكمان الـ m هو object لان الجافا pure object oriented
اى حاجه فالجافا عباره عن object من class
للتوضيح فقط ...
عندما نقول
Object o = new Employee();
فإننا نعرف مؤشر (ليس مؤشرا بمعناه في السي ... لأن الجافا ليس بها مؤشرات .. ولكنه في الحقيقه مؤشر ... و غالبا يسمي مرجع reference .. ولكنه ليس مرجع السي++)
هذا المؤشر أو المرجع من النوع Object أي أنه يستطيع أن يؤشر على أي كائن من النوع Object أو نوع يرث منه ... و هنا أسميناه o ... و في الحقيقه لم نحجز أي زاكره في هذه الحاله ....
new Employee() ... تقوم بوظيفتين مهمتين:
1- حجز الذاكره (memory allocation) ...
2- إستدعاء ال constructor ....
و تقوم بإرجاع مؤشر أو مرجع (reference) على الكائن الجديد و بإستخدام عملية المساواه (assignement operator) يتم عمل مشاره على هذا الكائن من المتغير o المعرف من نوع object..
بالنسبه لموضوع المؤشر أو المرجع على الكائن (في حالتها هذه هو المتغير o ) كنت قد قرأت في أحد كتب الجافا أنه بالفعل يحتوى على عنوان الكائن بطريقة ما مركبه...
أرجو أن تتقبلوا مروري :D
تم تعديل هذه المشاركة بواسطة Eisa Ayed في 13 أكتوبر 2010 في 03:25