أخير:
يسمح لك النهائي بالتحكم في ما إذا كان يمكن كتابة أعضائك أو فئاتك أو موروثة.
عندما تحدد متغيرًا في الفئة ، أضف الكلمة الرئيسية النهائية قبل ذلك ، أنه بمجرد تهيئة هذا المتغير ، لا يمكن تغييره ، لا يمكن تغيير مراجعهم بعد الآن. يمكن أن يكون تهيئةها في مكانين ، أحدهما هو تعريفه ، والآخر هو أنه في المُنشئ ، يمكن للمرء اختيار واحد من بينهما.
يوضح البرنامج التالي ببساطة الاستخدام العام للنهائي:
اختبار الطبقة العامة {Final int t = 1 ؛
الاستخدام الآخر هو تحديد المعلمات في الطريقة النهائية. . This parameter variable will not affect the calling statement, but it is very practical for object variables, because object variables are passed on their references when passed, so your modification of object variables in the method will also affect the calling statement. Object variables. عندما لا تحتاج إلى تغيير متغير الكائن كمعلمة في الطريقة ، يتم الإعلان عن استخدام النهائي بشكل صريح ، مما سيمنعك من تعديل طريقة الاتصال والتأثير عليها.
بالإضافة إلى ذلك ، عند استخدام متغيرات المعلمة في الطريقة في الفئة الداخلية ، يجب الإعلان عن متغير المعلمة هذا النهائي قبل استخدامه ، كما هو موضح في الكود التالي:
اختبار الفئة العامة {void print (string str) {test test = New Test () ؛
هناك سببان يعلن الطريقة النهائية عن الطريقة الأولى. الموروثة من هذه الفئة. والثاني هو آلية تسمح للمترجم بتحويل جميع المكالمات إلى هذه الطريقة إلى المكالمات المدمجة (في الخط). . لذلك يجب عليك استخدام النهائي لتحديد الطريقة بحذر.
الفصل النهائي عند استخدامه النهائي في فصل ما ، تحتاج إلى التفكير بعناية ، لأنه لا يمكن لأي شخص أن يكون الفصل النهائي ، مما يعني أن هذه الفئة هي فئة أوراق في شجرة ميراث ، وهذا الفصل يعتبر التصميم مثاليًا بدون التعديل أو التمديد. للأعضاء في الفصل النهائي ، يمكنك تحديده على أنه نهائي أو غير نهائي. بالنسبة للطرق ، لأن الفصل ينتمي إلى النهائي ، فإنها تصبح نهائية بشكل طبيعي. يمكنك أيضًا إضافة نهائي إلى الطريقة في الفصل النهائي ، ولكن من الواضح أن هذا لا معنى له.
أخيراً:
الكلمة الرئيسية أخيرًا هي أفضل إضافة إلى نموذج معالجة استثناء Java. تسمح الهيكل الأخير للرمز بتنفيذ دائمًا بغض النظر عما إذا كان الاستثناء يحدث. استخدم أخيرًا للحفاظ على الحالة الداخلية للكائن وتنظيف الموارد غير الذاكرة. بدون رمزك أخيرًا ، سيكون المربح. على سبيل المثال ، يوضح الرمز التالي كيف تكتب رمزًا لتحرير الموارد غير الذاكرة دون استخدام أخيرًا:
Public Void WriteFile (سلسلة FilePath ، اسم ملف السلسلة ، args). () ؛
يقوم هذا الرمز بإنشاء كائن FilewRiter ويستدعي طريقة الكتابة. قبل الخروج من الطريقة ، يجب عليك إغلاق كائن FilewRiter لتجنب ثغرات الموارد. لإنجاز هذه المهمة ، نسمي Close AT // 2 ، وهو آخر بيان للطريقة. ولكن ماذا يحدث إذا حدث استثناء في كتلة المحاولة؟ في هذه الحالة ، لا تحدث المكالمة الوثيقة في // 2. لذلك ، يجب عليك التقاط هذا الاستثناء وإدراج مكالمة أخرى لإغلاقها على // 1 قبل إعادة إصدار هذا الاستثناء. هذا يضمن إغلاق كائن FilewRiter قبل الخروج من الطريقة. إن كتابة رمز مثل هذا مرهق ومعرض للخطأ ، لكنه ضروري بدون أخيرًا. مع أخيرًا ، يمكن إعادة كتابة الكود السابق في النموذج التالي:
public void write (string filepath ، string args) remrows ioexception {filewriter fw = new filewriter ( FW .Close () ؛
تضمن الكتلة أخيرًا أن يتم تنفيذ الطريقة الإغلاق دائمًا بغض النظر عما إذا كان يتم إصدار استثناء خلال كتلة المحاولة. لذلك ، يتم التأكد من أن الطريقة الإغلاق تسمى دائمًا قبل الخروج من الطريقة. وبهذه الطريقة ، يمكنك التأكد من أن كائن FilewRiter مغلق وأنك لم تسرب الموارد.
الانتهاء:
وفقًا لمواصفات لغة Java ، يضمن JVM أن هذا الكائن لا يمكن الوصول إليه قبل استدعاء وظيفة اللمسات الأخيرة ، لكن JVM لا يضمن أن يتم استدعاء هذه الوظيفة. بالإضافة إلى ذلك ، تضمن المواصفات أيضًا أن تعمل وظيفة اللمسات الأخيرة مرة واحدة على الأكثر.
بشكل عام ، يتم استخدام اللمسات الأخيرة لإصدار بعض الموارد التي ليس من السهل التحكم فيها وهي مهمة للغاية ، مثل بعض عمليات الإدخال/الإخراج واتصالات البيانات. يعد إصدار هذه الموارد أمرًا بالغ الأهمية للتطبيق بأكمله. في هذه الحالة ، يجب على المبرمجين إدارة هذه الموارد بشكل أساسي من خلال البرنامج نفسه (بما في ذلك الإصدار) واستكمال طريقة إطلاق الموارد مع وظيفة اللمسات الأخيرة كملحق لتشكيل آلية إدارة تأمين مزدوجة ، بدلاً من الاعتماد فقط على اللمسات الأخيرة على الموارد لإصدار الموارد.
لخص
النهائي - المعدل (الكلمة الرئيسية) إذا تم الإعلان عن فئة نهائية ، فهذا يعني أنه لا يمكن استخلاص فئات فرعية جديدة ولا يمكن أن يتم مورثها كفئة الوالدين. لذلك لا يمكن إعلان الفصل التجريدي والنهائي. يمكن أن يضمن إعلان المتغيرات أو الأساليب النهائية عدم تغييرها أثناء الاستخدام. يجب أن يكون للمتغيرات المعلنة كنهائي قيمة أولية عند الإعلان ، ولا يمكن قراءتها إلا في المراجع المستقبلية ولا يمكن تعديلها. يمكن أيضًا استخدام الأساليب المعلنة كنهائي فقط ولا يمكن تحميلها بشكل زائد.
أخيرًا - يتم توفير كتلة نهائية لإجراء أي عملية تطهير عند معالجة الاستثناء. إذا تم إلقاء استثناء ، فسيتم تنفيذ شرط الصيد المطابق ، وسيقوم عنصر التحكم بإدخال الكتلة أخيرًا (إن وجدت).
اللمسات الأخيرة على اسم الطريقة. تسمح تقنية Java باستخدام طريقة Finateize () للقيام بعمل التنظيف اللازم قبل أن يقوم جامع القمامة بمسح الكائنات من الذاكرة. يتم استدعاء هذه الطريقة من قبل جامع القمامة عند تحديد عدم الرجوع إلى الكائن. يتم تعريفه في فئة الكائن ، لذلك ترثها جميع الفئات. تتجاوز الفئة الفرعية طريقة اللمسات الأخيرة () لتنظيم موارد النظام أو أداء أعمال التنظيف الأخرى. يتم استدعاء طريقة اللمسات الأخيرة على الكائن قبل حذف جامع القمامة.