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