Menu
Coddy logo textTech

שדות מחלקה ציבוריים ופרטיים

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

במחלקות JavaScript, אפשר להגדיר שני סוגים של שדות מחלקה: ציבוריים ופרטיים.

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

צרו מחלקה עם שדות ציבוריים:

class Student {
  name = '';
  grade = 0;
  
  constructor(name, grade) {
    this.name = name;
    this.grade = grade;
  }
}

צור מופע של תלמיד:

const student = new Student('Alice', 95);

גש לשדות ציבוריים מחוץ למחלקה:

console.log(student.name); // פלט: "Alice"
student.grade = 98;
console.log(student.grade); // פלט: 98

שדות פרטיים מסומנים בסמל # וניתן לגשת אליהם רק מתוך המחלקה:

class Student {
  name = '';
  #grade = 0;
  
  constructor(name, grade) {
    this.name = name;
    this.#grade = grade;
  }
  
  getGrade() {
    return this.#grade;
  }
  
  updateGrade(newGrade) {
    this.#grade = newGrade;
  }
}

שימוש בשדות פרטיים:

const student = new Student('Bob', 87);
console.log(student.name); // פלט: "Bob"

// גישה לשדה פרטי באמצעות מתודה
console.log(student.getGrade()); // פלט: 87

// עדכון שדה פרטי באמצעות מתודה
student.updateGrade(92);
console.log(student.getGrade()); // פלט: 92

// זה יגרום לשגיאה:
// console.log(student.#grade); // SyntaxError
challenge icon

אתגר

  1. הוסף שני שדות למחלקה בשם UserAccount:
    1. שדה ציבורי username
    2. שדה פרטי #password
  2. הוסף בנאי שמקבל את הפרמטרים username ו-password

נסו בעצמכם

import { UserAccount } from './userAccount.js';

// קוד בדיקה - אין לשנות
const user = new UserAccount("alice", "secret123");
console.log(user.username);          // אמור להדפיס "alice"

quiz iconבחנו את עצמכם

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

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

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