تعريف متغيرات الحالة ومتغيرات الفئة
عند الإعلان عن متغيرات الأعضاء، تسمى المتغيرات التي تم تعديلها باستخدام الكلمة الأساسية متغيرات الفئة وتسمى أيضًا متغيرات ثابتة أو متغيرات ثابتة، بينما تسمى المتغيرات التي لم يتم تعديلها باستخدام الكلمة الأساسية متغيرات المثيل.
على سبيل المثال:
classMain{floatx;//متغير المثيل staticinty;//متغير الفئة}
يلاحظ:
يجب وضع الكلمة الأساسية الثابتة قبل نوع المتغير.
الفرق بين متغيرات الحالة ومتغيرات الفئة
1. تختلف متغيرات الحالة للكائنات المختلفة عن بعضها البعض:
يمكن للفئة إنشاء كائنات مختلفة متعددة باستخدام عامل التشغيل الجديد. سيتم تعيين متغيرات أعضاء مختلفة لهذه الكائنات. تشغل متغيرات المثيل المخصصة لكائنات مختلفة مساحات ذاكرة مختلفة. لن يؤثر تغيير متغيرات المثيل على كائنات أخرى من الكائن.
2. جميع الكائنات تشترك في متغيرات الفئة:
إذا كانت هناك متغيرات فئة في الفصل، عند استخدام عامل التشغيل الجديد لإنشاء كائنات متعددة مختلفة، فإن متغيرات الفئة المخصصة لهذه الكائنات تشغل نفس الذاكرة. سيؤثر تغيير متغير الفئة لكائن واحد على فئة الكائنات الأخرى يعني أن الكائنات تشترك في متغيرات الفئة.
3. الوصول مباشرة إلى متغيرات الفئة من خلال أسماء الفئات:
عند تنفيذ برنامج Java، يتم تحميل ملف الرمز الثانوي للفئة في الذاكرة. إذا لم تقم الفئة بإنشاء كائن، فلن يتم تخصيص متغيرات المثيل في الفئة في الذاكرة. ومع ذلك، يتم تخصيص مساحة الذاكرة المقابلة لمتغيرات الفئة في الفئة عند تحميل الفئة في الذاكرة. إذا قامت هذه الفئة بإنشاء كائنات، فإن متغيرات مثيل الكائنات المختلفة تختلف عن بعضها البعض، أي أنه يتم تخصيص مساحات ذاكرة مختلفة، ولم تعد متغيرات الفئة تعيد تخصيص الذاكرة. تشترك جميع الكائنات في متغيرات الفئة، أي متغيرات الفئة جميع الكائنات متماثلة ولا يتم تحرير مساحة الذاكرة التي تشغلها متغيرات الفئة حتى يخرج البرنامج.
لذلك، يمكن الوصول إلى متغير الفئة ليس فقط من خلال كائن ولكن أيضًا مباشرة من خلال اسم الفئة، بينما يمكن الوصول إلى متغيرات مثيل الكائن من خلال الكائن ولكن ليس باستخدام اسم الفئة.