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

תוכן שנמחק תוכן שנוסף
Shaygettu (שיחה | תרומות)
אין תקציר עריכה
מ הגהה
שורה 1:
'''מחלקה''' (Class) היא אחד המאפיינים של [[תכנות מונחה-עצמים]]. זהו אוסף של [[משתנה (תכנות)|משתנים]], הגדרות ו[[פונקציה (תכנות)|פונקציות]] המאוגדים למבנה לוגי אחד ופועלים יחד. בניגוד לתכנות הפרוצדורלי שבו ישנה הפרדה בין נתונים לפונקציות, והנתונים הינם דבר פאסיבי שגורם חיצוני פועל בהם, בתכנות המונחה עצמים ישנה האחדה בין הנתונים והפונקציות, כך שמבנה הנתונים הוא בעל פונקציות שפועלות עליו עצמו. לפונקציה של מחלקה נהוג לקרוא שיטה (Method), בכדי לבדל בינה לבין פונקציה רגילה.
 
מבחינה מהותית, מחלקה מתארת [[אובייקט (מדעי המחשב)|עצם]] (אובייקט) על מאפייניו ופעולותיו. העצם יכול להיות עצם מהעולם האמיתי שבו מטפלת ה[[תוכנה]] (למשל, אם התוכנה מנהלת מלאי במחסן, המחלקה יכולה לתאר פריט במלאי), או עצם במחשב (למשל, [[מבנה נתונים]] מסוים). המחלקה מכילה מידע אודות העצם, ופונקציות המאפשרות לבצע פעולות על העצם, כמו לשנות את המידע בו, להפעיל אותו על עצמים אחרים, וכדומה.
 
בשפות שונות המחלקה הורחבה כך שהיא מכילה לא רק משתנים ושיטות, אלא גם אירועים ומאפיינים.
 
ברוב השפות ה[[מילה שמורה|מילה השמורה]] <tt>this</tt> משמשת להתייחסות עצמית במחלקה. למשל, בשפת [[PHP]]:
שורה 8 ⟵ 10:
class name
{
var $name;
 
function name()
{
$this->name = "OOP";
}
}
</source>
שורה 20 ⟵ 22:
 
מחלקה יכולה להיות אבסטרקטית, כלומר מחלקה שבה לפחות פונקציה אחת אינה ממומשת (ולכן מוגדרת כאבסטרקטית). מחלקה יכולה להיות [[ממשק תוכנה|ממשק]], כלומר אוסף של פונקציות שאינן ממומשות אלא מגדירות ממשק שכל מחלקה המרחיבה אותה חייבת לממש אותן (או להיות אבסטרקטית או ממשק בצורה רקורסיבית).
 
למימוש המחלקה קוראים [[אובייקט (מדעי המחשב)|אובייקט]], כאשר כל הפונקציות והמשתנים שאינם סטטיים שייכים אליו ואפשר להשתמש בהם דרכו. פונקציות סטטיות שייכות למחלקה עצמה, ואמורות להיקרא דרך המחלקה ולא האובייקט.
למשל, בשפת [[Java]]:
שורה 31 ⟵ 34:
public void printName()
{
System.out.println("My name is " + myName);
}
 
public static void printStaticName()
{
System.out.println("My name is " + myStaticName);
}
}
שורה 51 ⟵ 54:
</source>
}}
מחלקה משמשת ליצור סוגים חדשים של משתנים מובנים(משוכללים),מחלקה משמשת להגדרת "עצם" חדש וזה מה שמשייך אותו לחלק של תכנות מונחה עצמים למשל ב-C# מחלקה משמשת לבניית מבנים מיוחדים ומאוד מפורסמים כמו רשימה (LIST), מחסנית(STUCK), טור(QUEUE), עץ בינארי(BINARY NODE TREE) ועץ משחק(GAME TREE).
 
()public class name
<source lang="java">
}
public class name()
Options//
{
;variable variable name
//Options
.......
variable variable name;
Constructors//
.......
(.....,....,public name class(variable type name
//Constructors
}
public name class(variable type name,...,)
;this.name variable=variable
{
....
this.name variable=variable;
....
....
{
}
Methods//
() public variable type Get
//Methods
}
public variable type Get()
;return this.name type
{
{
return this.name type;
(public void Set(variable type name
}
}
;this.variable name=type name
public void Set(variable type name)
{
{
........
this.variable name=type name ;
........
}
........
} // End class
{
</source>
()public class name
== ראו גם ==
* [[אובייקט (מדעי המחשב)]]