!مفاهيم جافا الجزء السابع – المصفوفات

تحدثنا في المقالات السابقة انه هناك نوعين من القيم إما ان تكون قيم أساسية و أو أغراض.
ولقد قمنا بالتفصيل بالفرق بين متحولات الأشارة (Reference Variables) و متحولات القيم الأساسية (Primitive values variables)كما قد ذكرنا سابقاََ , بأن المصفوفات أغراض وليست قيم أساسية. لذلك يجب تحديد حجمها قبل إستخدامها لمعرفة كم من المساحة يجب الحجز لها.المصفوفات في الجافا هي typed اي يجب تحديد نمطها قبل البدأ بإستخدامها. إذا حددنا بأن نمط المصوفة هو قيمة أساسية  int وحجمها ٤ , ستقوم في إنشاء مصفوفة ٤ خانات في كل منها متحول فارغ ليس له اسم .هل هذا يعني بأن المصفوفات تحتوي متحولات؟ 
نعم هذا صحيح المصفوفة التي نعرفها بحجم ١٠ ستنشئ عشر خانات عبارة عن متحولات بدون أسماء هذه المتحولات من النمط الذي قمنا بتعريفه للمصفوفة.لربما مثال سيوضح الفكرة , سنقوم في مثالنا بإنشاء غرض مصفوفة من نمط int وسنسند إليه بعض القيم.

الموضوع سهل, لكن من الآن وصاعد المتحول المصفوفة numbers سيتوقع بأن نقوم إسناد قيم int دائما.

عندما أنشئنا المصفوفة باربع خانات لقد قامت بإعطاء قيم مبدئية لكل خانة عبارة عن 0 . سنلاحظ في الرسم التوضيحي بأن كل خانة عبارة عن متحول صندوق (متحول قيمة أساسية)

حتى لو قمنا بنسخ الخانة رقم ١ للخانة رقم ٢ ستكون كل خانة مستقلة تماما , وتغيير قيمة الخانة ٢ لن يؤثر على الخانة رقم ١ (على خلاف الأغراض)

 

اعتقد بأن الفكرة واضحة الآن , دعونا ننتقل للقسم الثاني وهو إنشاء مصفوفة من نمط صف معين . الفكرة هي نفسها تماما لكن عوضا عن إنشاء مصفوفة تحتوي متحولات من نمط أساسي (صناديق) ستكون المصوفة تحتوي متحولات من نمط إشارة. لتحقيق ذلك لقد قمنا بصنع مثال كامل. ستلاحظ ان الخانة رقم ١ والخانة رقم ٢ ستشير لنفس الغرض

 

Array of objects

خرج البرنامج سيكون
[This pacman is red, This pacman is green, This pacman is green, null]
[This pacman is red, This pacman is blue, This pacman is blue, null]

لايمكن تكبير المصفوفة في الجافا ,لانك عند إنشائها قد قمت بأختيار حجمها . الحل الوحيد هو إنشاء مصفوفة جديدة بحجم جديد ونسخ قيم المصفوفة القديمة. أو إستخدام مكتبة arrayList

وهذا ماسنتطرق له في الدرس القادم.

لميس

إسمي لميس, اعمل كمهندسة برمجيات في شركة إكسينغ في ألمانيا. بدأت في رحلة العمل في المجال البرمجي منذ أكثر من ١٠ سنوات في سنة ٢٠٠٣ كانت بداية رحلتي المهنية حيث كانت بدايتي مع ألعاب الفلاش.. حالياََ انا استخدم العديد من الأدوات البرمجية في العمل فنحن بحاجة ماسة للإطلاع على احدث التقنيات. هدفي هو نقل ما أتعلمه للمشاركة به وتبادل الخبرات مع الجميع

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *