logo

الفرق بين ثابت وغير ثابت في جافا

من أجل فهم كيفية عمل الفئات والمتغيرات والأساليب في جافا، من الضروري فهم مفاهيم ثابتة وغير ثابتة. يرتبط الأعضاء غير الثابتين بمثيلات فئة محددة، بينما يرتبط الأعضاء الثابتون بالفئة. في هذا القسم، سنقارن بين مكونات Java الثابتة وغير الثابتة، مع تسليط الضوء على الاختلافات والتطبيقات المحتملة بينهما.

مرتبط ب

ثابتة: يرتبط الأعضاء الثابتون (المتغيرات والأساليب) بالفئة نفسها وليس بالمثيلات الفردية.

تبديل حالة جافا

غير ثابت: الأعضاء غير الثابتين خاصون بكل مثيل للفئة، حيث أنهم مرتبطون بالكائنات التي تم إنشاؤها من الفئة.

تخصيص الذاكرة

ثابتة: يتم تخصيص الذاكرة للأعضاء الثابتين مرة واحدة فقط، في وقت تحميل الفصل. يتم مشاركتها بين جميع مثيلات الفصل.

غير ثابت: الأعضاء غير الثابتين لديهم ذاكرة مخصصة بشكل منفصل لكل مثيل للفئة. كل كائن له نسخته الخاصة من الأعضاء غير الثابتين.

مكدس جافا

الوصول

ثابتة: يمكن الوصول إلى الأعضاء الثابتين مباشرةً باستخدام اسم الفئة متبوعًا باسم العضو (على سبيل المثال، ClassName.memberName). ويمكن الوصول إليها من أي مكان داخل البرنامج.

غير ثابت: يتم الوصول إلى الأعضاء غير الثابتين باستخدام مرجع كائن متبوعًا باسم العضو (على سبيل المثال، objectReference.memberName). فهي محددة لمثيل معين من الفئة.

التهيئة

ثابتة: تتم تهيئة الأعضاء الثابتة عند تحميل الفئة في الذاكرة، عادةً أثناء بدء تشغيل البرنامج. التهيئة تحدث مرة واحدة فقط.

غير ثابت: تتم تهيئة الأعضاء غير الثابتين عند إنشاء كل مثيل للفئة، عادةً باستخدام الكلمة الأساسية الجديدة. تحدث التهيئة بشكل منفصل لكل كائن.

نِطَاق

ثابتة: يتمتع الأعضاء الثابتون بنطاق عالمي ويمكن الوصول إليهم من أي مكان داخل البرنامج، حتى بدون إنشاء مثيل للفئة.

غير ثابت: الأعضاء غير الثابتين لديهم نطاق محلي ولا يمكن الوصول إليهم إلا من خلال مثيل للفئة. لا يمكن الوصول إليها دون إنشاء كائن.

الثيران مقابل الثور

الوصول إلى الأعضاء

ثابتة: يمكن للأعضاء الثابتين فقط الوصول إلى الأعضاء الثابتين الآخرين داخل نفس الفئة. لا يمكنهم الوصول مباشرة إلى الأعضاء غير الثابتين.

غير ثابت: يمكن للأعضاء غير الثابتين الوصول إلى الأعضاء الثابتين وغير الثابتين داخل نفس الفئة. لديهم إمكانية الوصول المباشر إلى جميع الأعضاء.

الاستخدام

ثابتة: يتم استخدام الأعضاء الثابتة بشكل شائع لطرق الأداة المساعدة أو الثوابت أو المتغيرات غير الخاصة بالمثيلات الفردية. على سبيل المثال، فئة الرياضيات التي تحتوي على وظائف رياضية.

تحميل sts

غير ثابت: يتم استخدام الأعضاء غير الثابتين للسلوك الخاص بالمثيل، حيث يحتفظون ببيانات خاصة بكل كائن. على سبيل المثال، متغيرات الحالة التي تخزن قيمًا فريدة لكل كائن.

كفاءة الذاكرة

ثابتة: يستهلك الأعضاء الثابتون الذاكرة مرة واحدة فقط، بغض النظر عن عدد المثيلات التي تم إنشاؤها. يمكن أن تكون فعالة من حيث الذاكرة عندما يجب مشاركة نفس البيانات عبر جميع الكائنات.