موصى به, 2024

اختيار المحرر

الفرق بين النهائي ، وأخيراً ووضع اللمسات الأخيرة في Java

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

رسم بياني للمقارنة

أساس للمقارنةنهائيأخيراوضع اللمسات الأخيرة
الأساسيةFinal هو "Keyword" و "modifier modifier" في Java.وأخيرا هو "كتلة" في جاوة.وضع اللمسات الأخيرة هو "طريقة" في جاوة.
قابل للتطبيقالنهائي هو الكلمة الأساسية التي تنطبق على الطبقات والمتغيرات والطرق.وأخيرًا ، هناك كتلة مرتبطة دائمًا بمحاولة الالتقاط.finalize () هي طريقة تنطبق على الكائنات.
العمل(1) يصبح المتغير النهائي ثابتًا ، ولا يمكن إعادة تعيينه.
(2) لا يمكن تجاوز الطريقة النهائية بواسطة الفصل الدراسي.
(3) لا يمكن تمديد الفصل النهائي.
كتلة "أخيرة" ، قم بتنظيف الموارد المستخدمة في حظر "try".يؤدي إنهاء الطريقة إلى تنظيف الأنشطة المتعلقة بالكائن قبل تدميره.
إعداميتم تنفيذ الطريقة النهائية بناء على مكالمتها.يتم تنفيذ الحظر "أخيرًا" بعد تنفيذ كتلة "try-catch".إنهاء () طريقة تنفذ فقط قبل تدمير الكائن.

تعريف النهائي

"Final" هي كلمة أساسية في Java. بل هو معدل الوصول. تنطبق الكلمة "النهائية" على الفئات والطرق والمتغيرات. دعونا نرى كيف يعمل مع كل واحد منهم.

المتغير النهائي

  • عندما يتم تطبيق الكلمة الأخيرة على المتغير ، لا يمكن تعديله.
  • يجب تهيئة المتغير النهائي عند الإعلان عنه.
  • في اصطلاح ترميز مشترك ، يتم تعريف المتغيرات النهائية في UPPERCASE.
  • المتغير الأخير لا يشغل الذاكرة على أساس كل مثيل.
 final int FILE_OPEN = 2؛ 

الطرق النهائية

  • عندما يتم الإعلان عن طريقة في الفصل ، كأنها نهائية ، لا يمكن تجاوزها من خلال الفئة الفرعية الخاصة بها.
  • يمكن جعل الطرق الصغيرة التي يتم التصريح عنها نهائية "مضمنة" بواسطة المحول البرمجي الذي سيقلل الحمل الإضافي للدعوات الوظيفية ويزيد من تحسينات الأداء.
  • يتم حل استدعاء الأساليب التي يتم تجاوزها بشكل ديناميكي ، ولكن عندما يتم الإعلان عن طريقة نهائية ، لا يمكن تجاوزها. وبالتالي ، يمكن حل وظيفة استدعاء في وقت التحويل البرمجي.
 class A {final void meth () {System.out.println ("This is a final method.")؛ }} يمتد الفئة B إلى {void meth () {// Clas B لا يمكن أن يرث طريقة الفئة A. System.out.println ("لا يتجاوز")؛ }} 

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

  • عندما يتم إعلان الفصل الدراسي نهائياً ، فإنه لا يمكن توريثه من قبل أي فئة فرعية.
  • الإعلان عن فئة كطريقة نهائية سوف يعلن تلقائيا عن جميع أساليبها النهائية.
  • لا يمكنك الإعلان عن فئة على أنها "مجردة" و "نهائية".
 الفئة الأخيرة A {// ...} الفئة B تمدد A {// لا يمكن لفئة B أن ترث الفئة A // ...} 

تعريف أخيرا

  • في Java "أخيرًا" هي كتلة مقترنة دائمًا بكتلة try / catch.
  • يتم تنفيذ الكتلة "أخيرًا" بعد كتلة المحاولة / catch وقبل التعليمة البرمجية بعد كتلة try / catch.
  • ستقوم الكتلة "أخيرًا" بتنفيذ ما إذا تم طرح الاستثناء أم لا.
  • عندما يتم طرح استثناء ، ولا يتطابق أي مقطع catch مع الاستثناء حتى ذلك الحين ، يتم تنفيذ الكتلة "أخيرًا".
  • عندما ترجع إحدى الطالبات إلى المتصل من داخل كتلة المحاولة / catch عبر استثناء غير مألوف أو بيان إقرار صريح ، يتم تنفيذ الكتلة "أخيرًا" فقط قبل إرجاع الأسلوب إلى المتصل.
  • يتم استخدام الكتلة "أخيرًا" لتنظيف الموارد أو تحرير الذاكرة المستخدمة في حظر "try".
  • إن الكتلة "أخيرًا" اختيارية ، ولكنها ممارسة جيدة لكتابة الحظر بعد كتلة المحاولة / التجميع.
 class FinallyExample {// تقوم هذه الطريقة بطرد استثناء من الطريقة. static void procA () {try {System.out.println ("inside procA")؛ رمي جديد RuntimeException ("التجريبي") ؛ } أخيرًا {System.out.println ("procA's finally") ؛ }} // العودة من داخل كتلة المحاولة. static void procB () {try {System.out.println ("inside procB")؛ إرجاع؛ } أخيرًا {System.out.println ("procB's finally") ؛ }} // تنفيذ حظر المحاولة بشكل طبيعي. static void procC () {try {System.out.println ("inside procC")؛ } أخيرًا {System.out.println ("procC's finally") ؛ }} public static void main (String args []) {try {procA ()؛ } catch (Exception e) {System.out.println ("Exception caught")؛ } procB () ؛ procC ()؛ }} / خرج داخل الاستثناء procA procA أخيرا اشتعلت داخل procB procB's أخيرا داخل procC procC أخيرا 

تعريف الصيغة النهائية

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

الشكل العام للأسلوب الصيغة النهائية () هو على النحو التالي.

 void final finalize () {/ finalization code here} 

يتم الإعلان عن طريقة الإنهاء كحماية بحيث لا يمكن الوصول إليها من خارج الصف.

يتم دومًا استدعاء هذا الأسلوب قبل مجموعة البيانات المهملة.

الاختلافات الرئيسية بين النهائية ، وأخيرا ، ووضع اللمسات الأخيرة

  1. الكلمة الرئيسية النهائية عبارة عن معدِّل وصول ، وأخيرًا يمثل أحد الفواصل والامتداد النهائي طريقة.
  2. تنطبق الكلمة الرئيسية النهائية على الفئات والمتغيرات وطرق الفئات ، وأخيراً عبارة عن كتلة مقترنة بعلبة المحاولة التي يتم استخدامها للتعامل مع الاستثناءات ، ويتم وضع اللمسات الأخيرة على طريقة تعمل فقط على الكائنات.
  3. يصبح المتغير الذي تم الإعلان عنه نهائيًا ثابتًا ولا يمكن إعادة تعيينه مرة أخرى ، ولا يمكن تجاوز الطريقة المُعلنة كطريقة نهائية ، ولا يمكن أبدًا تصنيف الفئة التي تم الإعلان عنها نهائيًا. يتم استخدام كتلة أخيرا لتنظيف الموارد المستخدمة من قبل المحاولة والقبض على كتلة. يتم استخدام طريقة finalize لتنظيف الموارد المستخدمة بواسطة كائن قبل إتلاف الكائن.

استنتاج:

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

Top