סקירת הפרויקט
חלק מהיחידה תכנות מונחה עצמים במסלול ה-GDScript של Coddy. שיעור 56 מתוך 65.
אתגר
בינוניבפרויקט הזה תבנו מערכת לניהול ספרייה בשישה שלבים: ספרייה, ספרים ומשתמשים, השאלה, חיפוש, סטטיסטיקה והחזרות. כל שלב מתחיל מהקבצים שלכם מהשלב הקודם.
בשלב הזה יוצרים את המחלקה Library בקובץ library.gd. קוד הפתיחה כבר מצהיר על שלושת המאפיינים שלה:
library_name: שם הספרייהbooksו-users: שני מערכיArray[String]שמתחילים ריקים. לעת עתה הם מכילים כותרות ושמות משתמשים.
השלימו את שתי המתודות:
- הבנאי
_init(library_name)שומר את השם במאפייןlibrary_name. _to_string()מחזירהNAME Library (books: N, users: M), כאשרNו-Mהם הגדלים של שני המערכים.
הקוד שסופק קורא את שם הספרייה מהשורה הראשונה, ולאחר מכן פקודה אחת בכל שורה: book TITLE ו-user NAME מוסיפות למערכים, info מדפיסה את שלושת המאפיינים ו-show מדפיסה את הספרייה. עבור הקלט הזה:
Community
info
book Dune
user Ada
showהפלט הוא:
Name: Community
Books: 0
Users: 0
Community Library (books: 1, users: 1)כתבו את הקוד שלכם בקובץ library.gd. הקובץ main.gd מכיל את קוד הקלט/פלט שסופק ואי אפשר לערוך אותו.
נסו בעצמכם
extends Node
func _ready():
# קוד הקלט/פלט שסופק: יש להשאיר אותו כפי שהוא
var library := Library.new(OS.read_string_from_stdin())
var line := OS.read_string_from_stdin()
while line != "":
var parts := line.split(" ", true, 1)
match parts[0]:
"book":
library.books.append(parts[1])
"user":
library.users.append(parts[1])
"info":
print("Name: ", library.library_name)
print("Books: ", library.books.size())
print("Users: ", library.users.size())
"show":
print(library)
line = OS.read_string_from_stdin()
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםמבוא ל-OOPמחלקות לעומת אובייקטיםמילת המפתח selfמתודותמאפייניםבנאי (_init)חזרה – מחשבון פשוט2מאפייני מחלקה
משתני מופע לעומת משתנים סטטייםפונקציות סטטיותקובעי מאפייניםמאחזרי מאפייניםפרטיים לפי מוסכמהסיכום – מנהל חשבון בנק5כימוס
איברים ציבוריים ופרטייםאימות באמצעות Settersהסתרת מידעמאפיינים לקריאה בלבדסיכום – מערכת לניהול רשומות תלמידים8מושגי OOP מתקדמים
קומפוזיציה לעומת ירושהמחלקות פנימיותצמתים כרכיביםRefCounted לעומת NodeEnum במחלקות11פרויקט: ניהול ספרייה
סקירת הפרויקטמחלקות ספר ומשתמשתרגלו בעצמכם: קומפיילר GDScript אונליין