בפיתוח תוכנה, תכנות מכוון אובייקטים או תכנות מונחה עצמים (באנגלית: Object oriented programming) אני מגדיר כפרדיגמת פיתוח תוכנה שעיקרה יצירת מבני מידע הנקראים אובייקטים כאשר כל אובייקט מורכב מקבוע אחד לפחות ואו ממשתנה אחד לפחות ואו מפרוצדורה אחת לפחות.
יצירת אובייקטים
במסגרת הפרדיגמה, אובייקטים נוצרים לפי עקרונות אלה:
- כימוס: יכולת לכמס באובייקט מבנה-מידע אחד לפחות כגון (קבוע, משתנה, או פרוצדורה) אך שכל מבנה מידע כזה לא בהכרח יהיה ניתן לגישה מצד אובייקטים אחרים.
- פולימורפיזם: יכולת אובייקט להופיע בצורות שונות (למשל דרך הורשה לתת-אובייקט או דרך אינסטסיאציה ייחודית).
מושג הקלאס
בפיתוח תוכנה בפרדיגמה OOP נפוץ מאד ליצור קלאסים (classes).
קלאס בהקשר זה הוא אובייקט במצב ספציפי (ראה בהמשך) אבל אין הכרח ליצור קלאסים ולכן שם הפרדיגמה הוא תכנות מכוון אובייקטים ולא תכנות מכוון קלאסים (אובג'קט-אוריינטד ולא קלאס-אוריינטד).
ניתן לקבוע גישה לכל מאפיין קלאס (משתנה\פרוצדורה) דרך בקרי גישה (access modifiers) כגון:
- public: ניתן לשעתק מידע מקלאס או להשפיע על הקלאס ← מחוץ לקלאס
- private: לא ניתן לשעתק מידע מקלאס או להשפיע על הקלאס ← מחוץ לקלאס
- protected: באופן כללי לא ניתן לשעתק מידע מקלאס אך באופן אקספציונאלי, כן ניתן.
כל קלאס ניתן להרחיב לפי אבסטרקציה רצויה.
אם משתמשים בקלאסים אז שאובייקט הוא אינסטנס של קלאס.
דוגמה לקלאס משפת PHP
<?php Class Fish { public $species; public $record_weight; } $fish_1 = new Fish(); ?>