ראשי
סיכומים ומושגי יסוד
פולימורפיזם
class-and-object
סיכומיםתרגול מודרךבחנים

מחלקה לעומת עצם

מחלקה (Class) לעומת עצם (Object)

תכנות מונחה עצמים (OOP) יכול להיראות מופשט בהתחלה, אבל הרעיון בבסיסו הוא פשוט ולקוח מהעולם האמיתי: ההבדל שבין הרעיון לבין הדבר עצמו.

המחלקה (Class)

המחלקה היא התבנית, השרטוט או המתכון.

  • מגדירה אילו תכונות (Variables) ופעולות (Methods) יהיו למי שיווצר ממנה.
  • היא רעיון מופשט – היא לא תופסת מקום של ממש בזיכרון המחשב (כמו שמתכון לעוגה הוא לא עוגה שאפשר לאכול).
  • נכתבת פעם אחת בלבד בקוד.

העצם (Object / Instance)

העצם (נקרא גם מופע) הוא התוצר הפיזי שנוצר מתוך התבנית.

  • מיוצר בפועל בזיכרון המחשב במהלך ריצת התוכנית באמצעות המילה השמורה new.
  • לכל עצם יש זהות משלו וערכים משלו (למשל, לכל עצם יכול להיות גיל או צבע שונה).
  • אפשר לייצר אינספור עצמים מאותה מחלקה.

דוגמאות שיעשו לכם סדר

🐈

דוגמת החתול

תחשבו על המושג "חתול" כפי שהוא מופיע במילון או בויקיפדיה. ההגדרה אומרת שלחתול יש צבע פרווה, משקל, שם, ושהוא יודע ליילל או לישון. ההגדרה הזו היא המחלקה. אתם לא יכולים ללטף את ה"מושג" חתול מויקיפדיה.

אבל, אם ניקח את התבנית הזו וניצור ממנה חתולים אמיתיים בעולם שלנו – למשל החתול הג'ינג'י שלכם ששוקל 4 קילו, או החתולה השחורה של השכן שקוראים לה "מיצי" – אלה הם העצמים (Objects). כולם נוצרו מאותה תבנית (כולם חתולים), אבל כל אחד הוא ישות נפרדת בזיכרון, עם נתונים משלו.

🏢

דוגמת השרטוט והבניין

האדריכל מצייר שרטוט (המחלקה). בשרטוט כתוב איפה תהיה הדלת, כמה קומות יש ואיפה החלונות. השרטוט הוא רק נייר, אי אפשר לגור בו.
כשהקבלן לוקח את השרטוט ובונה ממנו בניין ברחוב הרצל 5, הבניין הממשי הוא העצם. הקבלן יכול להשתמש באותו שרטוט בדיוק כדי לבנות שכונה שלמה של 10 בניינים – תהיה לנו מחלקה אחת, אבל 10 עצמים שונים.

איך זה נראה בקוד?

יצירת המחלקה (התבנית)
class Cat {
    // תכונות (מה יש לו)
    String name;
    String color;

    // פעולות (מה הוא עושה)
    public void meow() {
        System.out.println("Meow!");
    }
}
יצירת העצמים (בזיכרון)
// יצירת עצם ראשון
Cat cat1 = new Cat();
cat1.name = "Mitsi";

// יצירת עצם שני מאותה תבנית
Cat cat2 = new Cat();
cat2.name = "Garfield";

// לכל עצם זהות וערכים משלו!
מחלקה לעומת עצם | TeachERA.I