Menu
Coddy logo textTech

מתודות שמשנות מצב

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

מתודות במחלקות JavaScript יכולות לשנות את המצב (המאפיינים) של אובייקט. זוהי אחת התכונות המרכזיות של תכנות מונחה עצמים.

בואו ניצור מחלקה פשוטה בשם BankAccount:

class BankAccount {
  constructor(owner, balance = 0) {
    this.owner = owner;
    this.balance = balance;
  }
  
  deposit(amount) {
    this.balance += amount;
  }
}

עכשיו ניצור מופע ונשנה את המצב שלו:

const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // פלט: 100

johnsAccount.deposit(50);
console.log(johnsAccount.balance); // פלט: 150

בדוגמה הזו, המתודה deposit() משנה את המצב הפנימי (המאפיין balance) של מופע BankAccount.

אפשר להוסיף שיטות נוספות שמשנות את המצב:

class BankAccount {
  constructor(owner, balance = 0) {
    this.owner = owner;
    this.balance = balance;
  }
  
  deposit(amount) {
    this.balance += amount;
  }
  
  withdraw(amount) {
    if (amount <= this.balance) {
      this.balance -= amount;
    }
  }
  
  transfer(amount, toAccount) {
    if (amount <= this.balance) {
      this.balance -= amount;
      toAccount.balance += amount;
    }
  }
}

עכשיו אפשר לשנות את חשבון הבנק שלנו בדרכים שונות.

challenge icon

אתגר

ניתנת לך מחלקה Thermostat. המשימה שלך היא להוסיף מתודות שמשנות את מצב הטמפרטורה שלה:

  1. increaseTemp() - מעלה את הטמפרטורה במעלה אחת
  2. decreaseTemp() - מורידה את הטמפרטורה במעלה אחת

נסו בעצמכם

import { Thermostat } from './thermostat.js';

// קוד בדיקה - אין לשנות
const livingRoom = new Thermostat("Living Room", 20);

livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // אמור להדפיס 22

livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // אמור להדפיס 21
quiz iconבחנו את עצמכם

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

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

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