אנקפסולציה הוא אחד משלושת הראשיתכונות של תכנות מונחה עצמים (OOP). השניים האחרים הם פולימורפיזם וירושה. יחד הם מהווים את הבסיס של אש"ף, הקובע את מכלול האפשרויות לכתיבת תוכניות בשפות שונות, תוך שימוש בשלושת העקרונות הללו. בשפות מונחה עצמים, בתורו, נדרשים לעקוב אחריהם בבירור.
תכנות מונחה עצמים ניצב על שלושה עמודים של היקום שלו:
אנקפסולציה (תכנות) היאשימוש במשתני גישה כדי להסתיר חלקים מקוד התוכנית של משתמש הקצה. תחת זה, בתורו, פירושו היזם או את האובייקט בירושה.
ההגדרה מגדירה זאת תחת אנקפסולציהזה מרמז על הסתרה של כל או חלק של קוד התוכנית. המהות של המושג "אנקפסולציה" היא מניפולציה של מודיפי גישה. משמעות הדבר היא כי היזם עצמו מחליט אילו תכונות, שיטות ושיעורים יהיה פתוח בכיתה הלקוח, ואילו אלה מוסתרים.
ב C # ("C Sharp"), בנוסף המצוין (למעט האחרון), ישנם עדיין שינויים כגון:
מנגנון של אנקפסולציה מאפשר לך להוציא את ההשפעה החיצונית על קוד התוכנית ושימוש שגוי של הנתונים מוטבע בו. זה נעשה על ידי שילוב של קוד ונתונים לתוך אחד.
אינטגרציה של יישום מודול התוכנהנתונים המוטבעים בקוד בתכנות נקראים אובייקט. המהות של הקשר שלה עם אנקפסולציה טמונה בעובדה כי זו טכניקה המאפשרת לשמור על שלמות המנגנון המדובר.
אנקפסולציה היא דרך לפשט את תהליך הקידוד. שורות רבות של קוד נשארות "מאחורי הקלעים", ובמעמד המרכזי הולך עם מופעים של אובייקטים.
אנקפסולציה היא גם מנגנוןמממש את הרעיון של הגנה על נתונים. ההיגיון בתוכנה של תכנות מונחה עצמים מבוסס על העובדה שרוב הנתונים יוסתרו על ידי תכונת הגישה הפרטית (פרטית, פרטית) או מוגנת (מוגנת). העולם החיצוני, הלקוח בטעות או בכוונה לא יכול להזיק ליישום של מודול התוכנה. מאז למעשה זה מאוד קל לעשות את זה אפילו בכוונה, אנקפסולציה היא עיקרון טוב מאוד.
כיתה, כמו היחידה הבסיסית של אנקפסולציה,מתאר את הנתונים ומכיל את הקוד המסוגל לפעול עם נתונים אלה. הוא גם הבסיס לבניית אובייקט. האחרון, בתורו, מיוצג כמעמד של הכיתה.
דוגמת אנקפסולציה (תכנות):
* הערה:
תיאור הוא תיאור של השיטה / נכס / משתנה, כלומר, להעיר על מה באמת קורה בתוכנית. הודגם עם תגי פתיחה / סגירה
באמצעות מערכת;
OOPLibrary.Auto
{
///
/// סוג זה נועד לתאר את המאפיינים ואת הפעולות של מכונית
///
המעמד הציבורי
{
///
/// משתנה נוצר כדי לכתוב אליו, בן כמה הוא המכונית, שכן ההתערבות החיצונית לתוך נכס זה נחשב על ידי היזם להיות מיותר
/// הוא מסומן עם משנה פרטית, כלומר, פרטית, גישה פרטית (ראה תיאור לעיל).
///
פרטי int _age;
///
/// בוליאני משתנה (רק שני ערכים אפשריים - כן או לא) המתארת אם המכונית כרגע נעים
/// זה גם לא צריך להיות פתוח למשתמש הקצה, מי שהוא. לכן, משתנה זה מוקצה לתוספת גישה פרטית "privat"
///
פרטי bool _isMoving;
///
/// משתנה מחרוזת זה חייב להכיל מידע על צבע המכונית. זה יכול להיות כפוף לשינויים מהשפעות חיצוניות
/// מכיוון ששינוי הגישה הציבורית "ציבורי" נבחר לצבע.
///
צבע מחרוזת ציבורית;
///
/// במקרה זה, אנו מניחים כי ניתן לשנות את שם הרכב
/// מקצה שינוי ציבורי (גישה ציבורית לכולם, ללא קשר למעמד או הרכבה).
///
שם מחרוזת ציבורית;
///
/// בנאי המחלקה נפתח, וכל המאפיינים לידי ביטוי על ידי משתנים ו המפורטים קודם לכן, לקבל את הערכים שלהם
///
אוטומטי ציבורי ()
{
_age = 5;
_isMoving = false;
צבע = "סגול";
שם = "סקודה אוקטביה";
}
///
/// השיטה מיישמת את ערך ההחזרה של גיל אוטומטי. למה זה נחוץ?
/// את פרטי גישה פרטית לא מאפשר ללקוח לשנות את זה.
///
/// מחזירה את גיל המכונית.
מחרוזת ציבורית GetAge ()
{
Return "כרגע, המכונה שנבחרה היא" + _age + "שנים.";
}
///
/// אם המכונית לא זזה, שיטה זומבינה את תחילת התנועה. ההמחאה נעשית למשתנה המציין את מצב המכונית (בין אם היא נסיעה או לא), ובהתאם לתוצאות, הפעולה המתאימה מבוצעת / מוצגת הודעה מתאימה.
///
החלל הציבורי התחל ()
{
אם (_isMoving)
{
Console.WriteLine ("התנועה כבר החלה");
}
Other
{
_isMoving = true;
Console.WriteLine ("כדי להתחיל, תשומת לב .. קדימה! בוא נלך!");
}
}
///
/// אם התנועה החלה, אז שיטה זו מפסיקה את זה. אותו לוגיקה תכנות כמו במקרה הקודם.
///
חלל ציבורי עצור ()
{
אם (_isMoving)
{
_isMoving = false;
Console.WriteLine ("עצור, מכונה");
}
Other
{
Console.WriteLine ("שגיאה: המכונית כבר נמצאת במקום, לא זזה");
}
}
///
/ / פנה שמאלה אם יש תנועת רכב
///
חלל ציבורי MoveLeft ()
{
אם (_isMoving)
{
Console.WriteLine ("פנה שמאלה");
}
Other
{
Console.WriteLine ("שגיאה: המכונית נייחת, פונקציית הסיבוב אינה זמינה כרגע");
}
}
///
/// שיטה דומה עם סיבוב ימינה
///
חלל ציבורי MoveRight ()
{
אם (_isMoving)
{
Console.WriteLine ("פנה ימינה בהצלחה");
}
Other
{
Console.WriteLine ("שגיאה: המכונית עדיין לא עברה." פנייה ימינה היא פעולה בלתי אפשרית. ");
}
}
}
}
</ p>