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

الفرق بين object و referance ؟

مغلق
بدأه moustafa_ad في 28 يوليو 2006 · 5 رد · 643 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي سؤال :

الفرق بين object و referance ؟

اريد كل الفروق حتى يتضح هذا المفهوم عندي :D

وشكرا

Moustafa

#2

السلام عليكم

حسب معرفتي انه

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);

ارجو ان تكون استوعبت الفرق

فانا مثلك ايضا كان عندي نفس المشكلة :)

#3

السلام عليكم

شكرا اخي الكريم على مجهودك في هذا الرد

ولكن ماوضح عندي مفهم الrefferance لحتى الان

انا فهمت منك انه هو

referance:فقط عبارة عن مؤشر يشير الى موقع class اليه انا عامل منه referance في الذاكرة

تمام

ولكن ماذا استفيد منه في الشغل العملي ؟؟؟؟؟؟

ارجو التوضيح بمثال اذا ممكن :D

وشكرا جزيلاً

Moustafa

#4
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

#5

اليك المثال التالي

لو عندك كلاس Student كالتالي



private String studentName;
private long studentID;

public void setStudentName(String name){
studentName=name;
}
}
public class Student extends Object{

هذا كلاس لو اردت اوبجكت منه تقوم بعمل الاتي


Student obj2=new Student();
Student obj3=new Student();
Student obj1=new Student();

الان الاوبجكت موجود في الذاكرة لكن كيف اريد ان اصل للمعلومات التي بداخله لاعدل فيها مثلا

اريد مؤشر يشير الى الاوبجكيت لكي اصل اليه

هذا المؤشر هوالـ refrence

obj1.setStudentName("moustafa_ad");

اذا كنت تريد انشاء اوبجكت ولا تريد التغيير فيه (فقط تريد انشاؤه)

استخدم التالي

new Student();

الان هذا اوبجكت جديد و موجود ولكن لن تصل اليه او تعدل في محتوياته لانه ببساطة لا يوحد اي refrence عليه

ارجو ان تكون الصورة واضحة

بالتوفيق

منقطع من حين لاخر

#6

السلام عليكم

شكرا اخواني على الرد السريع :D

واشكركم جزيلاً لان الموضوع اصبح واضح بالنسبة لي

وهذا بفضلكم

وجزالكم الله خيراً :D

Moustafa

هذا الموضوع مغلق.

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