إنشاء الأجسام وتخزينها
مُقدَّم| English | المعنى |
|---|---|
| constructor/kənˈstrʌktə/ | بناء أولي |
| instantiation/ˌɪnstænʃɪˈeɪʃn/ | تكوين مثال |
إنشاء كائن جديد
- لإنشاء كائن، استخدم الكلمة المفتاحية
newوبناء الكائن (constructor). Scanner sc = new Scanner(System.in);يبني كائن Scanner جديد.- إنشاء المثال (instantiation) هو فعل إنشاء كائن من فئة.
- بناء الكائن يضبط حالة البداية للكائن.
حجرات بناء الكائن
- يمكن لبناء الكائن أن يأخذ حججًا لتكوين الكائن الجديد.
new Random(42)يزرع مولدًا عشوائيًا؛new String("hi")ينسخ النص.- الحجج مطابقة لمعاملات بناء الكائن، من حيث الموقع والنوع.
- بناءات الكائن المختلفة (المحملة) تسمح لك ببناء نفس الفئة بطرق مختلفة.
حفظ المرجع
newيردها مرجعًا للكائن؛ احفظه في متغير من النوع الصحيح.Scanner sc = new Scanner(System.in);—scتشير الآن إلى ذلك الكائن.- الكائن يعيش في الذاكرة؛
scهو مجرد ملصق يشير إليه. - فقدان المرجع (لا يوجد متغير يحفظه) يجعل الكائن غير قابل للوصول.
متغيران، كائن واحد
- تعيين متغير كائن لمتغير آخر ينسخ المرجع، وليس الكائن.
Scanner sc2 = sc;— الآنscوsc2يشيران إلى نفس Scanner.- التغيير عبر
sc2يظهر عبرsc— إنه كائن واحد. - هذا السلوك لنسخ المرجع هو ميزة أساسية (وفخ) للكائنات.
new ينشئ كائناً واحداً ويعيد مرجعاً إليه. تعيين ذلك المتغير لمتغير آخر (b = a;) ينسخ المرجع، لذا فإن كلا الاسمين يشيران إلى نفس الكائن — وليس نسخة ثانية. بالمقارنة مع الأنواع الأولية (int y = x; تنسخ القيمة). نسيان هذا يؤدي إلى مفاجآت مثل "لقد غيرت b، لماذا تغير a أيضاً؟".
إنشاء الكائن والاسم المستعار:
Random r = new Random();→rيشير إلى كائن Random جديد.Random r2 = r;→r2يشير إلى نفس الكائن (لم يتم إنشاء كائن جديد).- كل من
rوr2يشارك الآن حالة مولد واحد.
أنشئ كائناً باستخدام new بالإضافة إلى بناء الكائن (إنشاء الكائن): new Scanner(System.in). new يعيد مرجعاً تخزنه في متغير. تعيين متغير كائن لمتغير آخر ينسخ المرجع — وكلاهما يشير بعد ذلك إلى نفس الكائن (على عكس الأنواع الأولية، التي تنسخ القيمة).
new يصنع جسماً واحداً؛ = ينسخ الإشارة
r و r2 يتشاركان جسماً واحداً؛ x و y نسخ مستقلة.
أي كلمة مفتاحية تصنع جسماً جديداً؟
Difficulty 1/5 · 100 coins + a small bonus on first completion today
new بالإضافة إلى Constructor يُنشئ جسماً.
الطريقة الخاصة التي تُستدعى لبناء جسم جديد تسمى ___ (كلمة واحدة).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
الـ Constructor يهيئ الجسم الجديد.
بعد Random r2 = r؛ كم عدد أجسام Random الموجودة؟
Difficulty 1/5 · 100 coins + a small bonus on first completion today
التعيين ينسخ الإشارة، ليس الجسم — لا يزال هناك جسم واحد.
تعيين متغير جسم لآخر (b = a) يصنع جسماً ثانياً مستقلاً.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ينسخ الإشارة — كلاهما يشيران إلى نفس الجسم.
بالنسبة للـ Primitives، int y = x; تنسخ القيمة، لذا x و y مستقلتان.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
الـ Primitives تنسخ القيمة؛ الأجسام تنسخ الإشارة.