تعريف طرق المثيل وطرق الفصل
عند الإعلان عن طريقة ما، فإن نوع الطريقة الذي لم يتم تعديله بواسطة الكلمة الأساسية الثابتة هو أسلوب مثيل، ونوع الطريقة الذي تم تعديله بواسطة الكلمة الأساسية الثابتة هو أسلوب فئة، ويسمى أيضًا الطريقة الثابتة.
على سبيل المثال:
classMain{inta;floatmax(floatb,floatc){// طريقة المثيل...}staticfloatmax(floatd,floate){// طريقة الفصل...}}
الفرق بين طرق المثيل وطرق الفصل
1. طريقة مثيل استدعاءات الكائنات:
عندما يتم تحميل ملف الرمز الثانوي لفئة ما في الذاكرة، لن يتم تعيين عنوان إدخال لطريقة المثيل الخاصة بالفئة فقط بعد إنشاء الفئة لكائن، سيتم تعيين عنوان إدخال لطريقة المثيل في الفئة، بحيث يتم تعيين عنوان إدخال لطريقة المثيل الخاصة بالفئة يمكن استخدام طريقة المثيل بواسطة أي كائن تم إنشاؤه بواسطة تنفيذ استدعاء الكائن.
يلاحظ:
عندما نقوم بإنشاء الكائن الأول، يتم تعيين عنوان إدخال لطريقة المثيل في الفصل، وعندما يتم إنشاء الكائن مرة أخرى، لم يعد يتم تعيين عنوان الإدخال، وهذا يعني أن عنوان إدخال الطريقة مشترك بين جميع الكائنات في حالة عدم وجود كافة الكائنات، يتم إلغاء عنوان إدخال الطريقة.
لا يمكن لطرق المثيل تشغيل متغيرات المثيل فحسب، بل أيضًا متغيرات الفئة. عندما يستدعي كائن طريقة مثيل، فإن متغيرات المثيل ومتغيرات الفئة التي تظهر في الطريقة هي متغيرات مخصصة للكائن، ولكن تتم مشاركة متغيرات الفئة مع كافة الكائنات الأخرى.
2. اتصل بأسلوب الفصل باستخدام اسم الفصل:
بالنسبة لطرق الفصل في الفصل، عند تحميل الفصل في الذاكرة، يتم تعيين عنوان الإدخال المقابل، بحيث لا يمكن استدعاء أسلوب الفصل وتنفيذه بواسطة أي كائن تم إنشاؤه بواسطة الفصل فحسب، بل يمكن أيضًا استدعاؤه مباشرة من خلال الفصل اسم الفصل. لا يتم إلغاء عنوان الإدخال الخاص بأسلوب الفصل حتى يخرج البرنامج.
يلاحظ:
لا يمكن استدعاء أساليب المثيل بواسطة اسم الفئة، فقط بواسطة الكائنات. ولأن متغيرات عضو المثيل لم تخصص ذاكرة قبل أن تقوم الفئة بإنشاء الكائن، فلا يمكن لأسلوب الفئة تشغيل متغيرات المثيل.
3. مبادئ تصميم الأساليب الطبقية:
إذا كانت إحدى الطرق لا تحتاج إلى تشغيل أي متغيرات حالة في الفصل لتلبية احتياجات البرنامج، فيمكنك التفكير في تصميم مثل هذه الطريقة كطريقة ثابتة.
بالنسبة للطرق الثابتة، يمكنك الاتصال بها مباشرة باسم الفئة دون إنشاء كائن، مما يؤدي إلى تخصيص مساحة ذاكرة لمتغيرات المثيل في الفئة.