לדלג לתוכן

בנאי (מדעי המחשב) – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
מ תיקון ועריכה קלילים.
שורה 41: שורה 41:
public:
public:
// בנאי שאינו מקבל פרמטרים
// a constructor who gets no parameters
Example()
Example()
{
{
שורה 47: שורה 47:
}
}
// overloading a constructor
// העמסה של בנאי
Example(int data)
Example(int data)
{
{
שורה 65: שורה 65:
Example *b = new Example(4);
Example *b = new Example(4);
</div>
</div>



=== בשפת התכנות [[Python]] ===
=== בשפת התכנות [[Python]] ===

גרסה מ־10:25, 15 באפריל 2008

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

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

למרות שברוב שפות התכנות מסופק לכל מחלקה שנכתבת בנאי ברירת מחדל (Default Constructor), אשר לא מקבל שום פרמטרים, ניתן לדרוס אותו (Override), ולכתוב בנאי ספציפי למחלקה, כפי שהמתכנת רואה לנכון. המתכנת ירצה לרוב לעשות כך כאשר הוא רוצה לאתחל את משתני המחלקה, או כאשר הוא רוצה להוסיף פונקציונליות לתהליך בניית המופע.

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


דוגמאות ל- Constructor

בשפת התכנות Java

public class Example 
{
  //definition of the constructor. 
  public Example()
  {
     this(1);
  }
 
  //overloading a constructor
  public Example(int input)
  {
     data = input;
  }
 
  //declaration of instance variable(s).
  private int data;
}
//code somewhere else
//instantiating an object with the above constructor
Example e = new Example(42);


בשפת התכנות ++C

class Example {
public:

  // בנאי שאינו מקבל פרמטרים
  Example()
  {
    data = 0;
  }
 
  // העמסה של בנאי
  Example(int data)
  {
    this->data = data;
  }
    
private:

  int data;
};
// Code somewhere else
// Instance an object on the stack with the above constructor
Example a(4);

// Instance one on the heap
Example *b = new Example(4);

בשפת התכנות Python

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

class Example(object):

    def __init__(self):
    """ a constructor who gets no parameters except for the curret object
    """
        self.data = 0

    def __init__(self, a):
    """ an oveloaded constructor
    """
        self.data = a
#Code somewhere else
#Creating an Example object
e = Example(4)

ראו גם