"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يمكنك استدعاء الأساليب الثابتة بمرجع كائن فارغ في Java؟

لماذا يمكنك استدعاء الأساليب الثابتة بمرجع كائن فارغ في Java؟

تم النشر بتاريخ 2024-11-19
تصفح:399

Why Can You Call Static Methods with a Null Object Reference in Java?

الوصول إلى الأساليب الثابتة بمراجع فارغة

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

الأساليب الثابتة مقابل طرق المثيل

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

استدعاء الأساليب الثابتة بمراجع فارغة

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

مثال

خذ بعين الاعتبار كود Java التالي:

public class Why {

  public static void test() {
    System.out.println("Passed");
  }

  public static void main(String[] args) {
    Why NULL = null;
    NULL.test();
  }

}
في هذا المثال، طريقة الاختبار () ثابتة ويمكن استدعاؤها مباشرة باستخدام اسم الفئة. السطر "NULL.test();" يستبدل المرجع الفارغ باسم الفئة "لماذا" ويستدعي طريقة الاختبار () بنجاح. لم يتم طرح NullPointerException.

لماذا هذا السلوك مسموح به؟

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

ملاحظة تحذيرية

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

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3