Menu
CoddyTech

אתחול אובייקטים

חלק מהיחידה תכנות מונחה עצמים במסלול ה-C# של Coddy. שיעור 8 מתוך 70.

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

הדרך המסורתית באמצעות בנאי

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
}

Person person = new Person();
person.Name = "Alice";
person.Age = 25;
person.City = "New York";

שימוש בתחביר אתחול אובייקטים

Person person = new Person
{
    Name = "Alice",
    Age = 25,
    City = "New York"
};

אתחול אובייקטים עם בנאים

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
    
    public Person(string name)
    {
        Name = name;
    }
}

// הבנאי מגדיר את Name, והאתחול מגדיר מאפיינים אחרים
Person person = new Person("Bob")
{
    Age = 30,
    City = "London"
};

מאתחלי אובייקטים מקוננים

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
}

public class Person
{
    public string Name { get; set; }
    public Address Address { get; set; }
}

Person person = new Person
{
    Name = "Charlie",
    Address = new Address
    {
        Street = "123 Main St",
        City = "Boston"
    }
};

יצירת אובייקטים מרובים באמצעות מאתחלים

Person person1 = new Person { Name = "Alice", Age = 25 };
Person person2 = new Person { Name = "Bob", Age = 30 };
Person person3 = new Person { Name = "Charlie", Age = 35 };

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

challenge icon

אתגר

בינוני

צרו שלושה אובייקטים מסוג Student באמצעות גישות שונות לאתחול אובייקטים:

  • student1: השתמשו בבנאי ברירת המחדל עם אתחול אובייקט כדי להגדיר את כל המאפיינים (Name, StudentId, Major, GPA) מהקלט
  • student2: השתמשו באתחול אובייקט כדי להגדיר רק Name = "Bob" ו-Major = "Engineering"
  • student3: השתמשו בבנאי עם "Charlie" כפרמטר, ואז השתמשו באתחול אובייקט כדי להגדיר StudentId = 54321, Major = "Mathematics", GPA = 3.5

נסו בעצמכם

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        int studentId = int.Parse(Console.ReadLine());
        string major = Console.ReadLine();
        double gpa = double.Parse(Console.ReadLine());
        
        // TODO: צרו את student1 באמצעות אתחול אובייקט עם כל המאפיינים
        // השתמשו בבנאי ברירת המחדל והגדירו את Name, StudentId, Major ו-GPA
        
        // TODO: צרו את student2 באמצעות אתחול אובייקט עם Name ו-Major בלבד
        // Name צריך להיות "Bob", ו-Major צריך להיות "Engineering"
        
        // TODO: צרו את student3 באמצעות הבנאי עם פרמטר השם "Charlie"
        // לאחר מכן השתמשו באתחול אובייקט כדי להגדיר StudentId = 54321, Major = "Mathematics", GPA = 3.5
        
        Console.WriteLine($"Student 1: {student1.Name} (ID: {student1.StudentId}) - {student1.Major}, GPA: {student1.GPA}");
        Console.WriteLine($"Student 2: {student2.Name} (ID: {student2.StudentId}) - {student2.Major}, GPA: {student2.GPA}");
        Console.WriteLine($"Student 3: {student3.Name} (ID: {student3.StudentId}) - {student3.Major}, GPA: {student3.GPA}");
    }
}
quiz iconבחנו את עצמכם

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

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

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