היקראת שיטות אינסטנציה
הוצג| 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() קורא את המצב של האובייקט לפני הנקודה.
איזה קריאה נכונה למתודת המ instance length על String word?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
מתודות מ instance נקראות על אובייקט: object.method().
מה מחזיר ".length() tiger"?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
"טייגר" מכיל 5 תווים.
Math.sqrt(16) היא מתודת class ו- word.length() היא מתודת instance. ההבדל הוא...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
שם class לפני הנקודה → מתודת class; אובייקט → מתודת instance.
אותה קריאת מתודת instance יכולה להחזיר תוצאות שונות על אובייקטים שונים.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
האובייקט לפני הנקודה מספק את המצב.
מתודת instance נקראת על ___ ספציפי באמצעות סימון נקודתי (מילה אחת).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
object.method() — האובייקט מספק את הקשר.