שדות מחלקה ציבוריים ופרטיים
חלק מהיחידה תכנות מונחה עצמים במסלול ה-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אתגר
- הוסף שני שדות למחלקה בשם UserAccount:
- שדה ציבורי
username - שדה פרטי
#password
- שדה ציבורי
- הוסף בנאי שמקבל את הפרמטרים
usernameו-password
נסו בעצמכם
import { UserAccount } from './userAccount.js';
// קוד בדיקה - אין לשנות
const user = new UserAccount("alice", "secret123");
console.log(user.username); // אמור להדפיס "alice"
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1אובייקטים ומילת המפתח this
סקירה מהירה: אובייקטיםהוספת מתודות לאובייקטיםהבנת מילת המפתח thisפונקציות בנאימילת המפתח newאתגר סיכום7הורשה ומילת המפתח extends
הורשההקשר "הוא-סוג-של"מילת המפתח extendsהמתודה super()הורשת מאפיינים ומתודותאתגר סיכום8ארגון קוד OOP
ארגון מחלקות במודוליםתרגלו בעצמכם: קומפיילר JavaScript אונליין