استدعاء طرق الأمثلة
مُقدَّم| English | المعنى |
|---|---|
| instance method/ˈɪnstəns ˈmeθəd/ | دالة مثالية |
الاستدعاء على كائن
- الأسلوب العيني يُستدعى على كائن محدد، باستخدام رمز النقطة.
word.length()يستدعيlength()على الكائنword.- الكائن قبل الرمز النقطي هو الذي يعمل عليه الأسلوب.
- على عكس أسلوب الفئة، تحتاج إلى كائن حقيقي لاستدعائه.
الكائن هو السياق
- داخل الأسلوب العيني، يتعامل الكود مع حالة ذلك الكائن.
"cat".length()يعيد3؛"hello".length()يعيد5— نفس الأسلوب، لكن كائنات مختلفة.- يقرأ الأسلوب (أو يغير) حالة الكائن الذي تم استدعاؤه عليه.
- يمكن لكائنين من نفس الفئة أن يعطيا نتائج مختلفة من نفس الاستدعاء.
المعاملات وقيم الإرجاع
- يمكن للأساليب العينية أن تأخذ معاملات وترجع قيمة، تماماً مثل أساليب الفئة.
"hello".substring(1, 3)يمرر1و3، ويعيد"el".- التقاط القيمة المُرجعة:
String part = "hello".substring(1, 3); - الكائن المرافق للرمز النقطي والمعاملات معاً يحددان النتيجة.
العيني مقابل الفئة، جنباً إلى جنب
- أسلوب الفئة:
Math.sqrt(16)— الرمز النقطي يأتي بعد اسم الفئة. - أسلوب عيني:
word.length()— الرمز النقطي يأتي بعد كائن. - إذا كان يحتاج بيانات كائن محدد، فهو أسلوب عيني.
- إذا كان أداة عامة بدون كائن، فهو أسلوب فئة (ساكن).
يتطلب الأسلوب العيني كائناً قبل الرمز النقطي: word.length()، وليس String.length(). الكائن قبل الرمز النقطي يوفر الحالة التي يعمل عليها الأسلوب، لذا فإن نفس الاستدعاء يعطي نتائج مختلفة على كائنات مختلفة. أساليب الفئة (Math.sqrt) تستخدم اسماً للفئة بدلاً منه — معرفة الفرق بينهما يخبرك ما إذا كنت بحاجة إلى كائن أولاً.
نفس الأسلوب، كائنات مختلفة:
String a = "cat", b = "tiger";a.length()→3(يعمل على"cat").b.length()→5(يعمل على"tiger") — الكائن قبل الرمز النقطي هو المحدد.
يُستدعى أسلوب عيني على كائن باستخدام رمز النقطة (word.length())؛ الكائن قبل الرمز النقطي يوفر الحالة التي يعمل عليها الأسلوب. يمكن أن يأخذ معاملات ويرجع قيمة كأي أسلوب. هذا يتناقض مع أسلوب الفئة (الساكن)، الذي يُستدعى على اسم الفئة (Math.sqrt(16)).
طريقة المثال تعمل على جسمها
length() تقرأ حالة الجسم قبل النقطة.
أي مما يلي استدعاء صحيح لطريقة المثال length على String word؟
Difficulty 1/5 · 100 coins + a small bonus on first completion today
طرق الأمثلة تُستدعى على جسم: object.method().
ماذا تُرجع "tiger".length()؟
Difficulty 2/5 · 140 coins + a small bonus on first completion today
"tiger" تحتوي على 5 أحرف.
Math.sqrt(16) هي طريقة فئة و word.length() هي طريقة مثال. الفرق هو...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
اسم فئة قبل النقطة → طريقة فئة؛ جسم → طريقة مثال.
نفس استدعاء طريقة المثال يمكن أن يعطي نتائج مختلفة على أجسام مختلفة.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
الجسم قبل النقطة يوفر الحالة.
طريقة المثال تُستدعى على ___ محدد باستخدام رمز النقطة (كلمة واحدة).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
object.method() — الجسم يوفر السياق.