אובייקט (מדעי המחשב) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה
מאין תקציר עריכה
שורה 18:
אובייקט הוא בדרך כלל סט ארעי של תכונות (משתני מחלקה; באנגלית: properties או attributes) והתנהגויות (מתודות או שגרות) ה[[כימוס|מכמסות]] יישות כלשהי. בצורה כזו, מתקיימת הבחנה בין [[טיפוס נתונים|טיפוסי נתונים]] פשוטים או [[סקלר (מחשבים)|פרימיטיביים]] המהווים יחידות אינפורמציה בדידות, לבין אובייקטים של תכנות מונחה-עצמים המהווים טיפוסי נתונים מורכבים הכוללים הרבה יחידות מידע ותכונות ספציפיות. לדוגמה, ניתן ליצור אובייקט המייצג [[קובץ]]: אוסף של [[נתונים]] ביחד עם מתודות הקריאה והכתיבה המשוייכות אליהם. ההגדרה הכללית של "קובץ" כלשהו תהיה מחלקה, וכאשר יווצר מופע של "קובץ" ספציפי הוא יהיה אובייקט מטיפוס "קובץ". שלא כמו טיפוסי נתונים פרימיטיביים, להם ניתן לבצע [[פקודת השמה|השמה]] של [[ערך (מדעי המחשב)|ערך]] (לדוגמה, <code>int a = 10</code>), אובייקטים צריכים ל"היבנות" על ידי קריאה לפונקציית [[בנאי (מדעי המחשב)|constructor]].
 
אחד הרעיונות החשובים בתכנות מונחה-עצמים הוא רעיון ה[[תכנות מונחה-עצמים#ירושה|ירושה]] (inheritance) המאפשר להגדיר יחס מסוג [[is-a]] בין אובייקטים. לדוגמה, "a car '''is a''' vehicle", כלומר, "מכונית היא סוג של כלי רכב". ניתן לממש יחס כזה בתכנות מונחה-עצמים על ידי מימוש מחלקת <code>Vehicle</code> (כלי רכב) ומימוש של מחלקה נוספת <code>Car</code> (מכונית) שיורשת מהמחלקה <code>Vehicle</code>. בדוגמה זו המחלקה <code>Vehicle</code> היא מחלקת האב (superclass) והמחלקה <code>Car</code> היא המחלקה היורשת (subclass). לאחר שהוגדרה המחלקה <code>Car</code>, ניתן ליצור מספר בלתי מוגבל של אובייקטים (מופעים) מהטיפוס <code>Car</code> אשר כולם כוללים את כל התכונות (לדוגמה, "מהירות מירבית") וההתנהגויות (לדוגמה, "לנסוע") שהוגדרו במחלקה <code>Car</code>. ניתן ליצור גם [[היררכיה]] מורכבת יותר של ירושה בין מחלקות, לדוגמה: "[[בעל חיים]]" יכולה להיות מחלקת אב של המחלקה "[[יונק]]" שממנה יורשת המחלקה "[[פרימט]]" שממנה יורשת המחלקה "[[אדם]]". פרטים ספציפיים כמו "יוסי לוי" ו"משה כהן" יהיו "אובייקטים" ממחלקת האדםה"אדם" ולכן יהיו להם גם כל התכונות הנכללות במחלקות: "אדם", "פרימט", "יונק" ו"בעל חיים".
 
== דוגמה ליצירת אובייקט ושימוש בו בשפת Java ==
שורה 44:
</source>
 
כמעט בכל שפות התכנות מונחות העצמים [[אופרטור (תכנות)|אופרטור]] הנקודה (<code>.</code>) משמש כדי לקרוא למתודה ספציפית של האובייקט כאשר הוא נמצא בין האובייקט לבין שם המתודה. קטע הקוד הבא כולל יצירה של אובייקט בשם <code>calculatorObject</code> שהוא מופע של המחלקה <code>Calculator</code>, קריאה למתודות של האובייקט והדפסת תוצאות החישוב שבוצעו על ידי האובייקט. (יצירת האובייקט בשורה השלישית):
 
<source lang="Java">