Menu
Coddy logo textTech

בנאי ברירת מחדל

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Dart של Coddy. שיעור 10 מתוך 110.

כשלא מגדירים אף בנאי במחלקה, Dart מספק אוטומטית בנאי ברירת מחדל. זהו בנאי ללא פרמטרים שפשוט יוצר מופע של המחלקה.

class Book {
  String title = 'Unknown';
  int pages = 0;
}

// Dart מספקת בנאי ברירת מחדל: Book()
Book myBook = Book();
print(myBook.title); // Unknown

בנאי ברירת המחדל אינו גלוי בקוד שלך, אבל הוא קיים. הוא אינו מקבל ארגומנטים ומאתחל את האובייקט בערכי ברירת המחדל שהקצית למשתני המופע.

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

class Book {
  String title;
  int pages;

  // בנאי ברירת מחדל מפורש
  Book() : title = 'Unknown', pages = 0;

  // בנאי עם פרמטרים
  Book.withDetails(this.title, this.pages);
}

Book book1 = Book();                      // משתמש בבנאי ברירת המחדל
Book book2 = Book.withDetails('Dart', 300); // משתמש בבנאי עם פרמטרים

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

challenge icon

אתגר

קל

בואו נבנה מערכת פשוטה לניהול מלאי מוצרים שמדגימה גם בנאים משתמעים וגם בנאי ברירת מחדל מפורש.

תיצרו שני קבצים כדי לארגן את הקוד שלכם:

  • product.dart: הגדירו מחלקה בשם Product שמציעה שתי דרכים ליצור מוצרים:
    • בנאי ברירת מחדל מפורש Product() שמאתחל את name ל-'Unnamed' ואת price ל-0.0 באמצעות רשימת אתחול
    • בנאי בשם Product.withDetails שמקבל את הפרמטרים name ו-price
    • מתודה display() שמדפיסה: Product: [name] - $[price]
  • main.dart: ייבאו את מחלקת המוצר שלכם וצרו שני מוצרים:
    • אחד באמצעות בנאי ברירת המחדל
    • אחד באמצעות הבנאי בעל השם עם 'Laptop' ו-999.99
    קראו ל-display() עבור כל מוצר.

למחלקה Product צריכים להיות שני משתני מופע:

  • String name
  • double price

תבנית הפלט הצפויה:

Product: Unnamed - $0.0
Product: Laptop - $999.99

נסו בעצמכם

import 'product.dart';

void main() {
  // TODO: צרו מוצר באמצעות լռելյայն կոնստրուկտորը
  
  // TODO: צרו מוצר անվանական կոնստրուկտորի միջոցով՝ 'Laptop' և 999.99 արժեքներով
  
  // TODO: կանչեք display() յուրաքանչյուր ապրանքի համար
}
quiz iconבחנו את עצמכם

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

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

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