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

תוכן שנמחק תוכן שנוסף
הרחבה
הרחבה
שורה 19:
 
אחד הרעיונות החשובים בתכנות מונחה-עצמים הוא רעיון ה[[תכנות מונחה-עצמים#ירושה|ירושה]] (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 ==
קטע הקוד הבא ב[[Java|שפת Java]] מגדיר את המחלקה <code>Calculator</code> (מחשבון) הכוללת מימוש למתודות: <code>add</code> (חבר), <code>subtract</code> (חסר), <code>multiply</code> (הכפל) ו-<code>divide</code> (חלק):
 
<source lang="Java">
public class Calculator {
 
public float add(float a, float b) {
return a + b;
}
 
public float subtract(float a, float b) {
return a - b;
}
 
public float multiply(float a, float b) {
return a * b;
}
 
public float divide(float a, float b) {
return a / b;
}
}
</source>
 
כמעט בכל שפות התכנות מונחות העצמים [[אופרטור (תכנות)|אופרטור]] הנקודה (<code>.</code>) משמש כדי לקרוא למתודה ספציפית של האובייקט כאשר הוא נמצא בין האובייקט לבין שם המתודה. קטע הקוד הבא כולל יצירה של אובייקט בשם <code>calculatorObject</code> שהוא מופע של המחלקה <code>Calculator</code>, קריאה למתודות של האובייקט והדפסת תוצאות החישוב שבוצעו על ידי האובייקט:
 
<source lang="Java">
public class CalculatorExample {
 
public static void main(String[] args) {
 
Calculator calculatorObject = new Calculator(); // creating an instance of the Calculator class
float a = 10;
float b = 2;
float result1 = calculatorObject.add(a, b);
float result2 = calculatorObject.subtract(a, b);
float result3 = calculatorObject.multiply(a, b);
float result4 = calculatorObject.divide(a, b);
System.out.println(result1); // prints: 12.0
System.out.println(result2); // prints: 8.0
System.out.println(result3); // prints: 20.0
System.out.println(result4); // prints: 5.0
}
}
</source>
 
== ראו גם ==