הבדל מפתח – מחלקה לעומת ממשק
תכנות מונחה עצמים (OOP) היא פרדיגמה נפוצה בפיתוח תוכנה. זה עוזר להביא תרחישים מהעולם האמיתי לתכנות באמצעות מחלקות ואובייקטים. מחלקה היא תוכנית ליצירת אובייקט. המתכנת יכול ליצור מחלקה עם מאפיינים ושיטות. תלמיד ומורה הם חפצים. יצירת אובייקט ידועה בשם מופע. OOP משתמש גם בממשקים. ממשקים וכיתה אולי נראים דומים, אבל יש ביניהם הבדל. מאמר זה דן בהבדל בין מחלקה לממשק. ההבדל העיקרי בין מחלקה לממשק הוא שמחלקה היא סוג הפניה המהווה תוכנית ליצירת אובייקט בעוד שהממשק הוא סוג הפניה שלא ניתן להשתמש בו כדי ליצור אובייקט.
מה זה Class?
ב-OOP, הכל נחשב כאובייקט. לא ניתן ליצור אובייקט ללא מחלקה. מחלקה היא תוכנית ליצירת אובייקט. בעת בניית בית, האדריכל משרטט את התוכנית. התוכנית דומה לשיעור. הבית דומה לחפץ. המחלקה היא התוכנית לבנות אובייקט. אובייקט הוא מה שנוצר באמצעות המחלקה.
המחלקה מכילה את המאפיינים והשיטות. לתלמיד יכולים להיות מאפיינים כמו שם, ציון, מספר אינדקס. לתלמיד יכולות להיות שיטות כמו קריאה, הליכה, לימוד. נוצרת מחלקה עם המאפיינים והשיטות הדרושים.
התחביר ליצירת מחלקה בשפות תכנות רבות הוא כדלקמן. הוא נוצר באמצעות מילת המפתח class.
class_name {
// properties
//methods
}
שפות תכנות כגון C ו-Java עוקבות אחר תחביר דומה כדי ליצור אובייקט באמצעות מחלקה. נניח ששם הכיתה הוא Student.
Student s1=סטודנט חדש ();
זה s1 הוא האובייקט. מילת המפתח "חדשה" משמשת להקצאת זיכרון למאפיינים. למחלקה יש גם בנאי לאתחל מאפיינים או משתנים.
לחברי הכיתה, כגון מאפיינים ושיטות, יש מגיני גישה. מפרטי גישה מתארים את הנגישות והנראות של אותם חברים למחלקות אחרות. לחברי הכיתה יכולים להיות מפרטי גישה כגון ציבורי, פרטי ומוגן. חברים ציבוריים נגישים על ידי כיתות אחרות. חברים פרטיים נגישים רק לכיתה. חברים מוגנים נגישים בתוך המחלקה ותתי המחלקות הרלוונטיות.
מהו ממשק?
Abstraction הוא עמוד התווך של תכנות מונחה עצמים. זה להסתיר את פרטי היישום ולהציג את הפונקציונליות למשתמש. הפשטה מושגת באמצעות מחלקות וממשקים מופשטים. לשיטה מופשטת אין מימוש. מחלקה המכילה לפחות שיטה מופשטת אחת נקראת מחלקה מופשטת.
כאשר יש שתי מחלקות מופשטות, יש ליישם את השיטות המוצהרות באותן מחלקות. מחלקה חדשה משמשת ליישום שיטות אלו. אם לשתי המחלקות הייתה אותה שיטה, זה עלול לגרום לבעיית אי בהירות. לכן, לשפות תכנות כמו Java ו-C יש ממשק.
הממשקים מכילים רק את הצהרת השיטות. אין שיטת יישום. כמו כן, לא ניתן להשתמש בממשקים ליצירת אובייקטים. הם משמשים לתמיכה במספר ירושות ולאבטחת הקוד.
התחביר של ממשק הוא כדלקמן. ממשק השתמש במילת המפתח "ממשק".
interface_name{
type method1(parameter_list);
type method2(parameter_list);
}
לפי לעיל, לממשקים יש רק את ההצהרה. אין הגדרה. לכן, ממשקים לא יכולים ליצור אובייקטים. זה רק נותן מבט מופשט על מה הממשק.שיטות המוצהרות בממשק יכולות להיות מיושמות על ידי מחלקה אחת או רבות. כיתה משתמשת במילת המפתח "יישם" כדי ליישם ממשק. עיין בדוגמה למטה שנכתבה באמצעות Java.
איור 01: תוכנית באמצעות ממשקים
לפי התוכנית לעיל, A ו-B הם ממשקים. לממשק A יש הצהרת מתודה שהיא הסכום(). לממשק B יש תת הצהרת מתודה (). מחלקה C מיישמת את שני הממשקים שהם A ו-B. לכן, מחלקה C מגדירה שיטות sum() ו-sub() גם יחד. לאחר יצירת האובייקט מסוג C, ניתן לקרוא לשתי המתודות sum() ו-sub().
שיטות המוצהרות בתוך הממשק חייבות להיות תמיד ציבוריות מכיוון שהמחלקות המיישמות מגדירות אותן. ממשק יכול לרשת גם מממשק אחר.
מהם הדמיון בין מחלקה לממשק?
- שניהם סוגי עזר.
- שניהם מתייחסים לתכנות מונחה עצמים.
מה ההבדל בין מחלקה לממשק?
כיתה לעומת ממשק |
|
מחלקה היא סוג הפניה המהווה תוכנית ליצירת אובייקט. | ממשק הוא סוג הפניה שלא ניתן ליצור מופע. |
יצירת אובייקט | |
מחלקה משמשת ליצירת אובייקט. | לא ניתן ליצור ממשק מכיוון שהשיטות אינן מסוגלות לבצע שום פעולה. |
קונסטרוקטור | |
מחלקה מכילה בנאי, כדי לאתחל את המשתנים. | ממשק אינו מכיל בנאי כי הם כמעט לא משתנים לאתחול. |
מילת מפתח | |
כיתה משתמשת במילת המפתח "כיתה". | ממשק משתמש במילת המפתח "ממשק". |
מפרט גישה | |
חברי הכיתה יכולים להיות פרטיים, ציבוריים ומוגנים. | חברי הממשק צריכים להיות ציבוריים תמיד מכיוון שהמחלקות המיישמות מגדירות אותם. |
סיכום – שיעור מול ממשק
מחלקות וממשקים נמצאים בשימוש נרחב בתכנות מונחה עצמים. ההבדל בין מחלקה לממשק הוא שמחלקה היא סוג הפניה שהוא תוכנית ליצירת אובייקט וממשק הוא סוג התייחסות שלא ניתן להשתמש בו כדי ליצור אובייקט.מחלקה יכולה ליישם ממשקים רבים. אבל זה יכול להרחיב רק מעמד-על אחד. בממשק יכול לרשת ממשקים רבים אבל לא יכול להיות יישום. לשניהם יש חשיבות. המתכנת יכול להשתמש בהם לפי תוכנה מפתחת.
הורד את מחלקת ה-PDF לעומת ממשק
ניתן להוריד את גרסת ה-PDF של מאמר זה ולהשתמש בה למטרות לא מקוונות לפי הערת ציטוט. אנא הורד כאן גרסת PDF ההבדל בין מחלקה לממשק