אובייקטים: דוגמאות של מחלקות
הוצג| English | משמעות |
|---|---|
| class/klæs/ | מחלקה |
| object/ˈɒbdʒekt/ | אובייקט |
| blueprint/ˈbluːprɪnt/ | תבנית |
| instance/ˈɪnstəns/ | אינסטנציה |
קלאסים ואובייקטים
- קלאס הוא תבנית — הוא מתאר מה סוג כלשהו של דבר מכיל ויכול לעשות.
- אובייקט הוא דוגמה מוחשית שנבנתה מתבנית זו.
- קלאס
Stringאחד; אובייקטי String רבים ("cat","dog","Ada"). - הקלאס מגדיר את הדפוס; כל אובייקט הוא העתקה מלאה שלו.
תבנית מול דוגמה
- חשב ב-חותך עוגיות (קלאס) מול עוגיות (אובייקטים).
- החותך מעצב אותם; כל עוגיה היא דבר נפרד ואמיתי.
- לכל אובייקט יש נתונים משלו, גם אם הם משתפים את העיצוב של הכיתה.
- שינוי באחד האובייקטים אינו משנה את השאר.
מצב והתנהגות
- אובייקט מקבץ מצב (הנתונים שלו — משתני instance) ו-התנהגות (שיטות).
- המצב של אובייקט
Stringהוא התווים שלו; ההתנהגות כוללתlength(),substring(). - אתה מתעורר עם אובייקט על ידי קריאת השיטות שלו.
- הקיבוצים הללו של נתונים + שיטות הם ליבת התכנות הממוחזר.
מחלקה או אובייקט?
מחלקה היא תבנית; אובייקט הוא instance ספציפי. מיינו כל אחד.
לאובייקטים יש סוגי הפניה
- אובייקט מאוחסן דרך הפניה — המשתנה מחזיק את כתובתו, לא את האובייקט עצמו.
String s = "hi";—sמתייחס לאובייקט String במקום כלשהו בזיכרון.- שתי הפניות יכולות ל指向 לאותו אובייקט.
- סוגי הפניה מתנהגים שונה מהפרמיטיבים — נושא זה יופיע בשיעורים הבאים.
כיתה היא סוג/תוכנית אב; אובייקט הוא גרסה אחת ממנה — אל תבלבל ביניהם. String היא הכיתה; "cat" הוא אובייקט. לכל אובייקט יש מצב משלו, כך שאובייקטי String שניים הם עצמאיים. ומשתנה של אובייקט מחזיק הפניה (כתובת), לא את הבייטים של האובייקט ישירות — הדבר חשוב כשתעתיק או תשווה אותם בעתיד.
היחס בין כיתה/אובייקט:
- כיתה:
String(תוכנית האב — כל String יכול לבצעlength(),substring(), …). - אובייקטים:
"cat","dog"— שתי גרסאות נפרדות, כל אחת עם התווים שלה. "cat".length()הוא3;"dog".length()הוא3— אותו התנהגות, מצב עצמאי.
כיתה היא תוכנית אב המתארת מצב (משתני 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
אובייקטים הם instances של מחלקה.
שני אובייקטים מאותה מחלקה יש להם כל אחד מצב עצמאי משלו.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הם חולקים את העיצוב אך מחזיקים נתונים נפרדים.
משתנה אובייקט למעשה מאחסן...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
אובייקטים הם סוגי ייחוס — המשתנה מחזיק כתובת.
ב-'String s = "cat";', String היא ה___ ו-"cat" הוא ה___.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
String היא הכית (תבנית); "cat" הוא אובייקט (דוגמה).