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

مؤلف: Laura McKinney
تاريخ الخلق: 2 أبريل 2021
تاريخ التحديث: 5 قد 2024
Anonim
# 68 final finally and finalize in Java | final vs finally vs finalize in java | Java | RedSysTech
فيديو: # 68 final finally and finalize in Java | final vs finally vs finalize in java | Java | RedSysTech

المحتوى


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

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

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

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


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

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

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

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

final int FILE_OPEN = 2؛

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

  • عندما يتم الإعلان عن طريقة في الفصل ، نهائية ، لا يمكن تجاوزها بواسطة فئتها الفرعية.
  • يمكن جعل الطرق الصغيرة التي تم الإعلان عنها نهائية "مضمّنة" بواسطة برنامج التحويل البرمجي ، مما يقلل من الحمل الزائد لوظيفة الاستدعاء ويزيد من تحسينات الأداء.
  • يتم استدعاء أساليب التجاوز ، يتم حلها ديناميكيًا ، ولكن عندما يتم إعلان الطريقة نهائية ، لا يمكن تجاوزها. وبالتالي ، يمكن حل استدعاء وظيفة في وقت الترجمة.

class A {final void meth () {System.out.ln ("This is a final method.")؛ }} الفئة B تمدد A {void meth () {// Clas B لا يمكن أن يرث طريقة الفئة A. System.out.ln ("Does not override")؛ }}

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

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

تمدد الفئة الأخيرة A {// ...} الفئة ب. {{لا يمكن أن ترث الفئة ب} الفئة أ // ...}

  • في Java ، "أخيرا" عبارة عن كتلة ترتبط دائمًا بلوك try / catch.
  • يتم تنفيذ الكتلة "أخيرًا" بعد كتلة try / catch وقبل الكود الذي يلي كتلة try / catch.
  • سيتم تنفيذ الكتلة "أخيرًا" سواء تم طرح الاستثناء أم لا.
  • عندما يتم طرح استثناء ، ولا تطابق كتلة catch الاستثناء حتى ذلك الحين ، يتم تنفيذ الكتلة "الأخيرة".
  • عندما تعود إحدى الطرق إلى المتصل من داخل كتلة try / catch عبر استثناء غير معلوم أو بيان إرجاع صريح ، يتم تنفيذ حظر "أخيرًا" قبل عودة الطريقة إلى المتصل مباشرةً.
  • يتم استخدام الكتلة "أخيرًا" لتنظيف الموارد أو تحرير الذاكرة المستخدمة في كتلة "المحاولة".
  • تعتبر الكتلة "أخيرًا" اختيارية ، ولكن من الجيد أن تتم كتابتها أخيرًا بعد كتلة try / catch.

class LastExample {// هذه الطريقة تلقي استثناءًا من هذه الطريقة. static void procA () {try {System.out.ln ("inside procA")؛ رمي RuntimeException الجديد ("التجريبي") ؛ } أخيرًا {System.out.ln ("procAs وأخيرًا") ؛ }} // العودة من داخل كتلة المحاولة. static void procB () {try {System.out.ln ("inside procB")؛ إرجاع؛ } أخيرًا {System.out.ln ("procBs وأخيراً") ؛ }} // تنفيذ كتلة المحاولة بشكل طبيعي. static void procC () {try {System.out.ln ("inside procC")؛ } أخيرًا {System.out.ln ("procCs وأخيراً") ؛ }} public static void main (String args) {try {procA ()؛ } catch (Exception e) {System.out.ln ("Exception caught")؛ } procB () ؛ procC ()؛ }} // الإخراج داخل procA procA أخيرًا تم اكتشاف استثناء داخل procB procB وأخيراً داخل procC procC

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

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

الشكل العام للطريقة وضع اللمسات الأخيرة () على النحو التالي.


الفراغ المحمي finalize () {// finalization code here}

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

تسمى هذه الطريقة دائمًا قبل جمع البيانات المهملة.

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

خاتمة:

Final ، وأخيراً ، و finalize له تأثير مختلف عند تطبيقه على طريقة ما.