السلام عليكم
عندي سؤال :
الفرق بين object و referance ؟
اريد كل الفروق حتى يتضح هذا المفهوم عندي :D
وشكرا
السلام عليكم
عندي سؤال :
الفرق بين object و referance ؟
اريد كل الفروق حتى يتضح هذا المفهوم عندي :D
وشكرا
Moustafa
السلام عليكم
حسب معرفتي انه
referance:فقط عبارة عن مؤشر يشير الى موقع class اليه انا عامل منه referance في الذاكرة
اما object هو اني اعمل نسخة من هذا class بحيث كل object له قيم data او attribute الخاصة فيه لأن كل objectعبارة عن نسخة
فممكن اعمل من الكلاس الواحد اكثر من object
فمثلا
6, Time time1 =new Time (4,5);
هذه الجملة يمكن كتابتها بصيغة اخرى مكافئة لها
Time time1;
time1=new Time (4,5,6);
فالجملة الأولى معناها روح اشر على الكلاس Timeفي الذاكرة فقط
اما الجملة الثانية فمعاها اعمل ابجكت اسمهtime1 . فهذا الأبجكت له قيم الساعات والدقائق والتواني الخاصه به وهي 4,5,6
وكذلك يمكن عمل ابجكت تاني اسمه time2 اله قيمه الخاصة مثل
Time time2;
time2=new Time (11,50,6);
ارجو ان تكون استوعبت الفرق
فانا مثلك ايضا كان عندي نفس المشكلة :)
السلام عليكم
شكرا اخي الكريم على مجهودك في هذا الرد
ولكن ماوضح عندي مفهم الrefferance لحتى الان
انا فهمت منك انه هو
referance:فقط عبارة عن مؤشر يشير الى موقع class اليه انا عامل منه referance في الذاكرة
تمام
ولكن ماذا استفيد منه في الشغل العملي ؟؟؟؟؟؟
ارجو التوضيح بمثال اذا ممكن :D
وشكرا جزيلاً
Moustafa
moustafa_ad كتب:السلام عليكمشكرا اخي الكريم على مجهودك في هذا الرد
ولكن ماوضح عندي مفهم الrefferance لحتى الان
انا فهمت منك انه هو
referance:فقط عبارة عن مؤشر يشير الى موقع class اليه انا عامل منه referance في الذاكرة
تمام
ولكن ماذا استفيد منه في الشغل العملي ؟؟؟؟؟؟
ارجو التوضيح بمثال اذا ممكن :D
وشكرا جزيلاً
الفرق بين object و الrefrence هو كالتالى
عندنا الmemory تنقسم الى حاجتين هما heap و stack (تتبع طريقة lifo ومعناة اخر قيمة تدخل اول قيمة تخرج)
assume example
Employee d = new Employee();
d يسمى فى هذة الحالة refrence ويخزن فى الstack و ال new تاخد ال object فى هذة الحالة ويخزن فى ال heap ويشير
ال address بتاع ال object الى refrence لحد ما يتم الا نتهاء من ال object بمجرد انتهاؤة يقوم garbage collection بعمل مسح
لل object حتى لاياخذ مساحة من ال memory
eng ahmed
اليك المثال التالي
لو عندك كلاس Student كالتالي
public class Student extends Object{هذا كلاس لو اردت اوبجكت منه تقوم بعمل الاتي
Student obj1=new Student();
الان الاوبجكت موجود في الذاكرة لكن كيف اريد ان اصل للمعلومات التي بداخله لاعدل فيها مثلا
اريد مؤشر يشير الى الاوبجكيت لكي اصل اليه
هذا المؤشر هوالـ refrence
obj1.setStudentName("moustafa_ad");اذا كنت تريد انشاء اوبجكت ولا تريد التغيير فيه (فقط تريد انشاؤه)
استخدم التالي
new Student();
الان هذا اوبجكت جديد و موجود ولكن لن تصل اليه او تعدل في محتوياته لانه ببساطة لا يوحد اي refrence عليه
ارجو ان تكون الصورة واضحة
بالتوفيق
منقطع من حين لاخر
السلام عليكم
شكرا اخواني على الرد السريع :D
واشكركم جزيلاً لان الموضوع اصبح واضح بالنسبة لي
وهذا بفضلكم
وجزالكم الله خيراً :D
Moustafa
هذا الموضوع مغلق.