אובייקט (מדעי המחשב) – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
מ סקריפט החלפות (ביניה, ישו, מרבי, משוי) |
|||
שורה 15:
ב[[תכנות מונחה-עצמים]], אובייקטים הם [[מבנה נתונים|מבני נתונים]] ביחד עם [[שגרה (תכנות)|שגרות]] ה[[מעבד|עיבוד]] המצורפות אליהם. אובייקט הוא [[מופע (מדעי המחשב)|מופע]] (instance) של [[מחלקה (תכנות)|מחלקה]] (class). מחלקה משמשת כדי להגדיר פעם אחת את [[משתנה (תכנות)|משתני]] המחלקה (properties) וההתנהגות (הפונקציות), ולאחר מכן ניתן להשתמש בה ליצירת הרבה מופעים (אובייקטים) מהסוג של אותה מחלקה. להבחנה זו בין מחלקה לאובייקט קיימות מקבילות גם בתחומי מדע אחרים. לדוגמה, ב[[ביולוגיה]] ו[[אבולוציה]] קיימת ההבחנה ה[[טקסונומיה|טקסונומית]] בין [[סוג (טקסונומיה)|סוג]] ו[[מין (טקסונומיה)|מין]].
אובייקט הוא בדרך כלל סט ארעי של תכונות (משתני מחלקה; באנגלית: properties או attributes) והתנהגויות (מתודות או שגרות) ה[[כימוס|מכמסות]]
אחד הרעיונות החשובים בתכנות מונחה-עצמים הוא רעיון ה[[תכנות מונחה-עצמים#ירושה|ירושה]] (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> אשר כולם כוללים את כל התכונות (לדוגמה, "מהירות
== דוגמה ליצירת אובייקט ושימוש בו בשפת Java ==
שורה 25:
public class Calculator {
public float add(float a, float b) {
}
public float subtract(float a, float b) {
}
public float multiply(float a, float b) {
}
public float divide(float a, float b) {
}
}
</source>
שורה 48:
public class CalculatorExample {
public static void main(String[] args) {
}
}
</source>
== אובייקטים מיוחדים ==
ישנם אובייקטים מיוחדים הנוצרים על סמך [[תבנית עיצוב]] מסוימת. בדרך כלל אובייקטים כאלה נקראים על שם תבנית העיצוב שלפיה הם נוצרו.
* [[תבנית Factory Method|Factory object]] (אובייקט בית חרושת): אובייקט שמטרתו ליצור אובייקטים אחרים.
* [[תבנית Singleton|Singleton object]]: אובייקט שהוא המופע היחיד של המחלקה שלו לאורך כל זמן הריצה של התוכנית.
* [[תבנית Prototype|Prototype]] (אב טיפוס):
* [[Immutable object]] (אובייקט שלא ניתן לשינוי): אובייקט המקבל [[מצב (מדעי המחשב)|מצב]] קבוע בזמן היצירה שלו והוא אינו משתנה לאחר מכן. אובייקטים מהמחלקה <code>String</code> ב-[[Java]] הם דוגמה ל-Immutable objects.
* [[Function object]]: אובייקט שיש לו מתודה אחת והיא פועלת כפונקציה (בדומה ל[[מצביע]] לפונקציה בשפות [[C (שפת תכנות)|C]] ו-[[C++|++C]]). ב-++C ניתן לממש function object על ידי [[העמסת פונקציות|העמסת]] (overloading) המתודה <code>()operator</code>.
|