الأنواع الكائنية والأنواع البسيطة

يوجد نمطين للأنواع في Java، الأنواع البسيطة والأنواع الكائنية. الأنواع البسيطة (أو البدائية - primitive)، مثل int وboolean تبدأ بحروف صغيرة؛ الأنواع الكائنية تبدأ بحروف كبيرة. هذا التمييز مفيد لأنه يذكرنا ببعض الاختلافات بين هذين النمطين:
· عند التصريح عن متغير بسيط، تحصل على منطقة تخزينية لقيمة بسيطة. عندما تصرح عن متغير كائني، تحصل على مساحة لمرجع يشير إلى كائن. للحصول على مساحة للكائن نفسه، يجب استعمال الأمر new.
· إذا لم تهيئ متغيراً من نوع بسيط، فسيعطى قيمة افتراضية تختلف حسب النوع. مثلاً، 0 للأعداد الصحيحة وtrue للمتغيرات البوليانية. القيمة الافتراضية للأنواع الكائنية هي null، التي تشير لعدم وجود كائن.
· المتغيرات البسيطة معزولة بشكل تام ما يعني عدم وجود أي شيء يمكنك عمله في عملية ما ثم يؤثر على متغير في عملية أخرى. قد يكون العمل مع المتغيرات الكائنية صعباً قليلاً لأنها غير معزولة بشكل كامل. إذا مررت مرجعاً يشير إلى كائن كمتحول، فقد تعدّل العملية التي استدعيتها على الكائن، وفي تلك الحالة سترى أثر ذلك. نفس الشيء يصح عندما تستدعي عملية على كائن. طبعاً، يمكن لذلك أن يكون شيئاً جيداً، لكن يجب أن تكون واعياً له.
يوجد اختلاف آخر بين الأنواع البسيطة والكائنية. لا يمكنك إضافة أنواع بسيطة جديدة إلى لغة Java (إلا إذا كنت عضواً في لجنة معايير اللغة القياسية)، لكن يمكنك إنشاء أنواع كائنية جديدة! سنرى كيفية عمل ذلك في الفصل التالي.