מחלקה (תכנות)
ויקיפדיה האנציקלופדיה encyclopedia
מחלקה (Class) היא המסגרת הבסיסית של תכנות מונחה-עצמים. זהו אוסף של משתנים (הנקראים שדות), מאפיינים ופונקציות (הנקראות שיטות) המאוגדים למבנה לוגי אחד ופועלים יחד. בניגוד לתכנות הפרוצדורלי שבו ישנה הפרדה בין נתונים לפונקציות, והנתונים הם מבנה פאסיבי שגורם חיצוני פועל בהם, בתכנות מונחה עצמים ישנה האחדה בין הנתונים והפונקציות, כך שמבנה הנתונים הוא בעל פונקציות שפועלות עליו עצמו. למשתנה של מחלקה קוראים שדה, ולפונקציה של מחלקה נהוג לקרוא שיטה (Method), כדי לבדל ביניהם לבין משתנים ופונקציות רגילים.
מבחינה מהותית, מחלקה מתארת ישות מופשטת על מאפייניה ופעולותיה ומימושה בפועל הוא באמצעות עצם (אובייקט). העצם יכול להיות עצם מהעולם האמיתי שבו מטפלת התוכנה (למשל, אם התוכנה מנהלת מלאי במחסן, המחלקה יכולה לתאר פריט במלאי), או עצם במחשב (למשל, מבנה נתונים מסוים). המחלקה מכילה מידע אודות העצם, ופונקציות המאפשרות לבצע פעולות על העצם, כמו לשנות את המידע בו, להפעיל אותו על עצמים אחרים, וכדומה.
בשפות הראשונות שמימשו תכנות מונחה עצמים כמו C++ המחלקה הכילה משתנים ושיטות, (ביניהן שיטות שמטרתן לחשוף משתנים כלפי חוץ), בשפות שונות כמו VB ובמיוחד במודרניות כמו ג'אווה ו-#C המחלקה הורחבה כך שהיא מכילה לא רק משתנים ושיטות, אלא גם מאפיינים מובנים (שחושפים משתנים פנימיים) ואירועים.
בכל מחלקה קיימות שתי פונקציות שמופעלות באופן אוטומטי על המופעים שלה בעת יצירתם ובעת מחיקתם. בעת יצירת המופע תופעל פונקציית בנאי (Constructor), באמצעותה אפשר לאתחל את האובייקט, לעיתים באמצעות פרמטרים המועברים אליה. בעת הריסת האובייקט תופעל פונקציה הורסת (Destructor), באמצעותה אפשר למשל לשחרר זיכרון שהיה בשימוש על ידי העצם, או למחוק אובייקטים אחרים שכבר אין בהם צורך.
ברוב השפות המילה השמורה this משמשת להתייחסות עצמית במחלקה. למשל, בשפת PHP:
class name
{
var $name;
function name()
{
$this->name = "OOP";
}
}
שמות נוספים לכינוי עצמי של המחלקה בשפות אחרות Me ו-Self.
כל מחלקה מוקדשת בדרך כלל לטיפול בנושא מוגדר אחד - טיפול בקבצים, תקשורת עם מסד הנתונים וכדומה.