الانتقال إلى المحتوى الرئيسي

كيفية جعل فئة غير قابلة للتغيير في جافا: طريقة سهلة

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

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

على سبيل المثال ، إذا كان لدينا فئة شخص بحقل اسم ، فيمكننا جعل الفئة غير قابلة للتغيير من خلال إعلان حقل الاسم نهائيا. ثم ، بعد التهيئة ، لا يمكن تغيير قيم حقل الاسم.

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

  1. تعريف الفئة
  2. باستخدام المعدل النهائي
  3. اجعل جميع الحقول خاصة
  4. استخدم المنشئ لتعيين قيم الحقل
  5. لا توفر طرقا لتغيير حقول الفصل
  6. استخدم الحاصلين فقط للوصول إلى الحقول
  7. اجعل الفصل غير قابل للتوريث باستخدام النهائي
  8. سؤال وجواب
  9. أي فئة تعتبر غير قابلة للتغيير في جافا?
  10. ما هي مزايا الطبقات الثابتة?
  11. كيف يمكنني جعل فئة غير قابل للتغيير في جاوة?
  12. ما هي الأخطاء التي يمكن إجراؤها عند إنشاء فئة غير قابلة للتغيير في جافا?
  13. متى يجب استخدام الفصول الثابتة في جافا?

تعريف الفئة

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

يتكون إعلان الفئة في جافا من الكلمة الرئيسية للفئة متبوعا باسم الفئة. يجب أن يبدأ اسم الفئة بحرف كبير وأن يكتب بأسلوب تدوين "الجمل" ، حيث يتم فصل الكلمات بأحرف كبيرة. على سبيل المثال ، ميكلاس.

مثال على إعلان الفصل:

فئة عامة ميكلاس {

// فئة الجسم

}

يوجد داخل الفصل حقول (متغيرات) وطرق (وظائف) تحدد حالة وسلوك كائنات هذه الفئة.

يمكن الإعلان عن الطبقات في جافا مع معدلات الوصول مثل العامة والخاصة ، محمية أو بدون معدل الوصول:

  • عام: يمكن الوصول إلى الفصل من أي فئة أخرى.
  • خاص: الفئة متاحة فقط داخل نفس الحزمة.
  • محمي: الفئة متاحة فقط داخل نفس الحزمة والفئات الموروثة.
  • بدون معدل الوصول: الفئة متاحة فقط داخل نفس الحزمة.

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

باستخدام المعدل النهائي

يمكن استخدام المعدل النهائي في جافا للإشارة إلى أنه لا يمكن تعديل أو تمديد فئة أو طريقة أو متغير.

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

مثال:

الدرجة النهائية

// كود الفصل

}

هذا النهج مفيد في الحالات التي نريد فيها التأكد من أن تطبيق فئة معينة لن يتم تعديله أو توريثه.

يمكن أيضا استخدام المعدل النهائي مع الأساليب. إذا أعلنا طريقة مع المعدل النهائي ، فلا يمكن تجاوزها في الفئات الفرعية.

مثال:

فئة مايبارنتكلاس {

طريقة الفراغ النهائي () {

// رمز الطريقة

}

}

فئة ميشيلدكلاس يمتد ميبارنتكلاس {

// سيقوم المترجم بإرجاع خطأ لأننا نحاول تجاوز الطريقة مع المعدل النهائي

طريقة الفراغ () {

// رمز الطريقة

}

}

هذا النهج مفيد عندما نريد التأكد من أن بعض الطرق لن يتم تجاوزها وتلفها في الفئات الفرعية.

أخيرا ، يمكن استخدام المعدل النهائي مع المتغيرات. إذا أعلنا متغيرا مع المعدل النهائي ، فلا يمكن تغيير قيمته بعد التهيئة.

مثال:

المتغير النهائي = 10;

المتغير = 20; // سيعطي المترجم خطأ لأننا نحاول تغيير متغير مع المعدل النهائي

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

اجعل جميع الحقول خاصة

من أجل جعل فئة غير قابلة للتغيير في جاوة ، فمن الضروري لجعل جميع حقولها الخاصة. في الوقت نفسه ، يجب أن يتم الوصول إلى بيانات الفصل فقط من خلال الأساليب العامة للفصل.

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

للوصول إلى الحقول الخاصة من فئة ، وخلق حاصل العامة واضعي. تسمح لك الحاصلات بالحصول على قيمة الحقل ، وتسمح لك المحددات بتعيينه. يمكن تنفيذ عمليات فحص أو تحويلات مختلفة للبيانات داخل الحاصلين والواضعين ، اعتمادا على احتياجات البرنامج.

في ما يلي مثال على فئة بسيطة أصبحت غير قابلة للتغيير من خلال جعل جميع مجالاتها خاصة:

"'جافا

فئة عامة فئة ثابتة {

private final int id;

private final String name;

public ImmutableClass(int id, String name) {

this.id = id;

this.name = name;

}

public int getId() {

return id;

}

public String getName() {

return name;

}

}

«`

В данном примере класс `ImmutableClass` имеет два приватных поля `id` и `name`, а также публичные геттеры для доступа к этим полям. عند إنشاء كائن من هذه الفئة ، تتم تهيئة قيم الحقل في المنشئ ولا يمكن تغييرها بعد ذلك.

وبالتالي ، من خلال جعل جميع حقول الفصل خاصة وتوفير الوصول إليها فقط من خلال الأساليب العامة ، فإننا نضمن التحكم في بيانات الفصل وحمايتها ، مما يجعلها غير قابلة للتغيير.

استخدم المنشئ لتعيين قيم الحقل

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

لإنشاء فئة غير قابلة للتغيير ، تحتاج إلى:

  1. حدد حقول الفصل على أنها خاصة
  2. لا توفر واضعي (طرق لتعيين قيم الحقل)
  3. استخدم المنشئ لتعيين قيم الحقول

:

شخص الطبقة العامة {

اسم السلسلة النهائية الخاصة;

العمر الدولي النهائي الخاص;

الشخص العام(اسم السلسلة ، العمر الدولي) {

this.name = الاسم;

هذا.العمر = العمر;

}

// طرق أخرى للفئة...

}

وأعلن القطاع الخاص وليس لديهم واضعي. أيضا ، تحدد الفئة منشئ يأخذ قيما لهذه الحقول ويعين لهم.

، لا يمكن تغيير قيم حقولها:

شخص شخص = شخص جديد ("إيفان" ، 25);

person.name = "بيتر" ؛ / / خطأ! خطأ في التجميع

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

لا توفر طرقا لتغيير حقول الفصل

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

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

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

مثال:

فئة عامة فئة ثابتة {

الحقل الدولي النهائي الخاص 1;

حقل السلسلة النهائية الخاصة 2;

فئة عامة ثابتة (حقل إنت 1 ، حقل سلسلة 2) {

هذا.الحقل 1 = الحقل 1;

هذا.الحقل 2 = الحقل 2;

}

العامة إنت جيتفيلد 1 () {

حقل العودة 1;

}

سلسلة العامة جيتفيلد 2 () {

حقل العودة 2;

}

}

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

يأخذ منشئ الفئة قيما للحقول ويضعها عند إنشاء كائن. للوصول إلى قيم الحقل ، يتم توفير الطرق العامة جيتفيلد 1() و جيتفيلد 2 () ، والتي ترجع قيمة الحقول دون إمكانية التعديل.

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

استخدم الحاصلين فقط للوصول إلى الحقول

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

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

الحاصلون هي طرق عامة لفئة توفر الوصول إلى قيم حقولها. على عكس المحددات (الطرق التي تسمح لك بتعيين قيم الحقول) ، لا يغير الحاصلون حالة كائن ويعيدون فقط نسخة من قيمة الحقل.

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

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

سلسلة العامة جيتنام () {

العودة this.name ;

}

يتجنب هذا النهج للوصول إلى حقول الكائنات تغيير قيمها بشكل مباشر ، كما يوفر بنية فئة أكثر مرونة وتحكما.

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

اجعل الفصل غير قابل للتوريث باستخدام النهائي

في جافا ، فمن الممكن لجعل فئة غير قابلة للتوريث باستخدام الكلمة النهائية.

عندما يتم الإعلان عن فئة على أنها نهائية ، تصبح غير قابلة للتغيير وغير محددة. وهذا يعني أن فئة أخرى لا يمكن أن ترث من فئة أعلن أنها نهائية.

لجعل فئة غير قابلة للتوريث ، أضف الكلمة الأساسية النهائية قبل الإعلان عن الفئة:

الطبقة النهائية العامة

// فئة الجسم

}

الآن لا فئة أخرى سوف تكون قادرة على وراثة من فئة ميكلاس.

يمكن أن يكون هذا النهج مفيدا إذا كنت ترغب في منع سلوك فئة من التغيير والتأكد من أن التعليمات البرمجية الخاصة به لا تزال دون تغيير.

ومع ذلك ، تجدر الإشارة إلى أنه إذا كنت تستخدم نهائيا لفئة ما ، فإن جميع أساليبها تصبح تلقائيا نهائية وغير محددة. يمكن أن يكون هذا مفيدا عند تصميم فئة توفر وظائف ثابتة حصريا.

يعد استخدام الكلمة الأساسية النهائية لفئة ما أحد الأساليب لضمان ثبات الفصل في جافا.

سؤال وجواب

أي فئة تعتبر غير قابلة للتغيير في جافا?

فئة غير قابلة للتغيير في جافا هي فئة لا يمكن تعديل كائناتها بعد إنشائها.

ما هي مزايا الطبقات الثابتة?

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

كيف يمكنني جعل فئة غير قابل للتغيير في جاوة?

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

ما هي الأخطاء التي يمكن إجراؤها عند إنشاء فئة غير قابلة للتغيير في جافا?

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

متى يجب استخدام الفصول الثابتة في جافا?

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