Menu
Coddy logo textTech

״יש-לו״ לעומת ״הוא-״

חלק מהיחידה תכנות מונחה עצמים במסלול ה-JavaScript של Coddy. שיעור 47 מתוך 56.

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

ראשית, נבין את הקשר „הוא סוג של” באמצעות ירושה:

class Animal {
  constructor(name) {
    this.name = name;
  }
  
  eat() {
    console.log(`${this.name} is eating.`);
  }
}

// Dog "is-a" Animal - קשר ירושה
class Dog extends Animal {
  bark() {
    console.log(`${this.name} says woof!`);
  }
}

עכשיו נבחן את הקשר "יש-לו" באמצעות הרכבה:

class Engine {
  start() {
    console.log("Engine started");
  }
}

// ל-Car "has-a" Engine - קשר של קומפוזיציה
class Car {
  constructor() {
    this.engine = new Engine(); // קומפוזיציה
  }
  
  startCar() {
    this.engine.start();
    console.log("Car is running");
  }
}

ההבדל העיקרי:

  • "הוא-סוג-של" (ירושה): כלב הוא בעל חיים
  • "יש-לו" (הרכבה): למכונית יש מנוע
challenge icon

אתגר

ניתנו לך מחלקות הרכיבים (Processor, Memory) ורוב המחלקה Computer. המשימה שלך היא להשלים את הבנאי בקובץ computer.js:

  1. צור מאפיין processor באמצעות המחלקה Processor
  2. צור מאפיין memory באמצעות המחלקה Memory
  3. העבר את processorSpeed לבנאי של Processor ואת memorySize לבנאי של Memory

נסו בעצמכם

import { Computer } from './computer.js';

const myComputer = new Computer(3.5, 16);
myComputer.start();
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר JavaScript אונליין