תכנות מונחה עצמים (OOP) - האובייקט

סגור באמצעות טופס זה תוכלו לספר ולהמליץ לחבריכם..
שם השולח:
כתובת דוא"ל של השולח:
שם המקבל:
שלח לכתובת דוא"ל:
הוסף הערה:
אובייקט הוא מופע (Instance) של מחלקה, ממחלקה ניתן להגדיר הרבה אובייקטים (או מופעים). מלקה הנה מבנה לוגי/הגדרתי/הצהרתי/מופשט, אובייקט הינו ישות פיזית בעל אורך חיים (Life time) וטווח הכרה (Scope).

האובייקט האובייקט


מאת: ארז קלר

אובייקט הוא מופע (Instance) של מחלקה, ממחלקה ניתן להגדיר הרבה אובייקטים (או מופעים).
מחלקה הנה מבנה לוגי/הגדרתי/הצהרתי/מופשט, אובייקט הינו ישות פיזית בעל אורך חיים (Life time) וטווח הכרה (Scope).
המחלקה היא "בית יוצר" לאובייקטים, ניתן לראותה גם כתבנית ממנה נוצרים אובייקטים בעלי מבנה זהה, אולם בעלי ערכים שונים.

 
לדוגמה:
 
 1  : class Program 
 2  : { 
 3  :     static void Main(string[] args) 
 4  :     { 
 5  :         Point p1 = new Point(11, 22); 
 6  :         Point p2 = new Point(33, 44); 
 7  :         Point p3 = new Point(55, 66); 
 8  :         Point p4 = new Point(77, 88); 
 9  :     } 
 10 : } 
 
מהמחלקה Point הוגדרו ארבעה אובייקטים (p1, p2, p3, p4), לכל האובייקטים הללו מבנה זהה (מגדירים את המיקום באמצעות התכונות m_X, m_Y), אולם הם בעלי ערכים שונים המייצגים מיקומים שונים במרחב דו ממדי.
*הערה- בדוגמא השתמשתי במתודת בנאי, בנאים מוסברים בהמשך.
יצירת אובייקט ב- C# מתבצעת בשני שלבים:
  • הגדרת ייחוס (Reference) מטיפוס המחלקה, ייחוס זה נמצא באזור זיכרון הנקראStack .
  • הקצאת זיכרון לאובייקט והעברת כתובתו לייחוס. האובייקט מוקצה ב- Managed Heap.
הקצאת האובייקט מתבצעת באמצעות האופרטור new.
לדוגמה:

 
Point p = new Point();
 
 תמונת זיכרון:
תמונת זיכרון

בשונה מהטיפוסים הפשוטים (int, float, double, short וכדומה) ובדומה למערכים כאשר נוצר אובייקט התכונות שלו מאופסות.
בסיום העבודה עם האובייקט כאשר אין בו עוד צורך האובייקט עדיין חי וקיים (ובועט) וגוזל משאבי זיכרון, בעולם ה- .NET קיים מנגנון שתפקידו להרוס את האובייקטים שאין בהם עוד צורך ולשחרר את הזיכרון שהם תופסים.
מנגנון זה הנקרא Garbage Collector  (או GC בקיצור) יהרוס רק אובייקטים שאין להם ייחוס פעיל בתוכנית.
ולכן, כאשר התוכנית אינה זקוקה יותר לאובייקט מומלץ לנתק את הקשר בין האובייקט לייחוס על ידי השמת הערךnull  בייחוס.
השמת null בייחוס אינה משחררת את האובייקט, אולם היא תאיץ, במידת הצורך, את שחרור הזיכרון שלו על ידי ה- Garbage Collection.
לדוגמה:
p = null;
תמונת זיכרון לאחר השמת null:
תמונת זכרון אחרי
 


 
כל הזכויות שמורות למחבר ©