מחשבים, תכנות
Encapsulation - מה זה? Encapsulation בתכנות
Encapsulation - זהו אחד משלושת המאפיינים העיקריים של תכנות מונחה עצמים (OOP). השניים האחרים - פולימורפיזם וירושה. יחד הם מהווים את מסגרת אש"ף אשר תניח את מגוון תכונות של תוכניות הכתיבה בשפות שונות, באמצעות שלושת התנאים הללו. מונחה עצמים בשפות, בתורו, מחויבות לעקוב אחריהם בקפדנות.
יסודות OOP
תכנות מונחה עצמים על שלושה עמודי הבריאה שלו:
- פולימורפיזם, לענות על השאלה של איך עוסקת שפת תכנות מסוימת עם אובייקטים המקיימים קשר אחד עם השני, בצורה דומה.
- ירושה, מתן תשובה, איך היא הגירוי של השימוש בקוד לשימוש חוזר.
- Encapsulation, המהווה את התשובה לשאלה מסתתר יישום מתרחש, ולכן על שלמות הנתונים.
טרמינולוגיה
(תכנות) Encapsulation - הוא להשתמש מכפילי גישה כדי להסתיר פיסות קוד ממשתמש הקצה. מתחתיה, בתורו, אומר באתרי מפתח או המורשת.
מהות המושג "אנקפסולציה"
ההגדרה קובעת כי על ידי אנקפסולציה התכוון מסתיר את כל או חלק של קוד התוכנה. מהות המושג "אנקפסולציה" היא לתפעל מכפילי גישה. משמעות הדבר היא כי היזם יכול להחליט איזה תכונות, שיטות, וכיתות יהיה פתוח לקהל ממדרגת הלקוח, ומה - מוסתרים.
מכפילי גישה
- ציבור ( "ציבורי" - ציבור, גישה פתוחה) - הנתח הוא המעמדות הנוכחיות והחפצות, וכדי העולם החיצון;
- הפרטי ( "prayvat" - פרטית, פרטית, גישה נסתרת) - סגור גישה, שמהותו היא לגמרי ההפך מקודמו. הוא מספק גישה רק מהכיתה הנוכחית;
- מוגן ( "protekted" - מוגן, גישה החבויה למחצה) - גישה אל הכיתה הנוכחית ונגזרותיו;
- מחדל - צירוף לגישה בלתי מוגדר אומר שהשדה / השיטה ניתן לראות עבור כל המעמדות הנוכחיות בחבילה.
ב C # השפה ( "סי שארפ"), בנוסף לאמור לעיל (למעט האחרון), יש עדיין מכפילי:
- פנימית ( "פנימית" - גישה פנימית) - נגישות באסיפה הנוכחית, גישה מקורה לכל מקרים האחרים;
- פנימית מוגן ( "protekted הפנימי" - גישה הפנימית מוגנת) - האיחוד של שני מכפילים באחד שבה מאפייני מניפסט של שניהם.
תפקידו של אנקפסולציה
מנגנון אנקפסולציה מבטל השפעה חיצונית על קוד הניצול לרעה של נתונים המוטבעים בו. מטרה זו מושגת על ידי שילוב של קוד ונתונים לתוך אחד.
אובייקט אנקפסולציה
שילוב יישום מודול ונתוני תוכנה מוטבע הקוד, תכנות נקרא אובייקט. מהות הקשר שלה עם אנקפסולציה היא שיטה כזו מאפשרת לשמור ולהבטיח את תקינות הפעולה של המנגנון.
היתרון של אנקפסולציה
Encapsulation - דרך לפשט את תהליך הקידוד. קווים רבים של קוד הם "מאחורי הקלעים", ובעבודת המעמד המרכזית הולכים להתנגד מקרים.
הרעיון של הגנה על נתונים
Encapsulation - זה גם מנגנון אשר מבין את הרעיון של הגנה על נתונים. היגיון תכנות תכנית מונחת עצמים בנוי על הבסיס מה רוב הנתונים יהיה פרטי צירוף לגישה נסתר (פרטי, פרטי) או מוגן (מוגן). העולם החיצון, הלקוח בטעות או בכוונה לא יפגע ביישום מודול תוכנה. כי בעצם זה עושה את זה קל מאוד אפילו לא בכוונה, אנקפסולציה - זהו עיקרון מאוד טוב.
יחידת אנקפסולציה
מח', כיחידה בסיסית של אנקפסולציה ומתאר את הנתונים כוללים קוד, אשר מסוגל לפעול על נתונים אלה. הוא גם הבסיס לבניית העצם. זה האחרון, בתורו, מוצג כמופע.
- חברים - זה הוא הקוד ואת הנתונים כלולים בכיתה;
- שדות או משתנה למשל - נתונים שנקראים המגדיר את המעמד;
- פונקציות חבר - הם מכילים את הקוד עצמו. פונקציות חבר - שם נפוץ. מקרה מיוחד - שיטות.
דוגמא Encapsulation ספציפית
דוגמא Encapsulation (תכנות):
* הערה:
תיאור - תיאור של השיטה / נכס / משתנה, כלומר להגיב למה שקורה בפועל התוכנית. זה מודגם באמצעות תגי פתיחה / סגירה
באמצעות המערכת;
מרחב OOPLibrary.Auto
{
///
/// בכיתה זו נועדה לתאר את הפעולה של המכונית
///
Auto מעמד ציבורי
{
///
/// משתנה נוצר כדי לכתוב בה, כמה שנים את המכונית, שכן ההתערבות החיצונית יזם הרכוש רואה מיותרת
/// המשנה מסומן פרטי, דהיינו סגור, גישה פרטית (ראה. התיאור לעיל).
///
_age int הפרטי;
///
/// ערך בוליאני (רק שני ערכים אפשריים - כן או לא), המתארות אם הרכב נע כרגע
/// זה צריך להיות גם פתוח למשתמש הקצה, מי הוא היה. לכן משתנה זה מוקצה צירוף לגישה פרטי "prayvat"
///
_isMoving bool הפרטי;
///
/// משתנה מחרוזת זו צריכה לכלול מידע על צבע המכונית. זה ניתן לשינוי על ידי השפעות חיצוניות
/// כי עבור משנה הצבע נבחר גישה פתוחה "ציבור".
///
צבע מחרוזת ציבור;
///
/// במקרה ספציפי זה, אנו מניחים כי השם של המכונית, מדי, יכול להיות שונה
/// שהוקצה צירוף של הציבור (גישה פתוחה לכל, ללא קשר בכיתה או הרכבה).
///
שם מחרוזת הציבור;
///
/// פותח את בנאי בכיתה, וכל המאפיינים של המשתנה הביע ולהגדיר קצת מוקדם, לקבל את הערכים שלהם
///
Auto הציבור ()
{
_age = 5;
_isMoving = false;
Color = "Purple";
Name = "סקודה אוקטביה";
}
///
/// השיטה מבינה ערך החזרה של העידן האוטומטי. למה זה נחוץ?
/// צירוף לגישה פרטית לא מאפשר את שינויי הלקוח.
///
/// מחזיר את הגיל של המכונית.
מחרוזת הציבור GetAge ()
{
לחזור "כרגע, המכונה הנבחר" + _age + "שנה.";
}
///
/// אם המכונית לא זזה, שיטה זו מיישמת את תחילתה של התנועה. המחאות משתנית oboznalsya, המצב של הרכב (נסיעה או לא), וכן, בהתאם לתוצאות, הפעולה / ההודעה המתאימה מוצגת.
///
חלל ציבורי התחל ()
{
אם (_isMoving)
{
Console.WriteLine ( "התנועה כבר התחילה");
}
אחר
{
_isMoving = true;
Console.WriteLine ( "Ready, Set .. יסתלק!");
}
}
///
/// אם ההצעה יזמה, שיטה זו עוצרת אותו. אותו היגיון בתוכנית כמו במקרה הקודם נחשב.
///
עצור חלל ציבורי ()
{
אם (_isMoving)
{
_isMoving = false;
Console.WriteLine ( "מכונת עצור");
}
אחר
{
Console.WriteLine ( "מכונת שגיאה וכך לעמוד עדיין, לא זז");
}
}
///
/// Implemented פנייה שמאלה, אם יש רכב
///
MoveLeft חלל ציבורי ()
{
אם (_isMoving)
{
Console.WriteLine ( "פונה שמאלה נעשה");
}
אחר
{
Console.WriteLine ( "רכב שגיאה הוא תכונת סיבוב נייחת אינה זמינה כעת.");
}
}
///
/// שיטה דומה עם פנייה ימינה
///
MoveRight חלל ציבורי ()
{
אם (_isMoving)
{
Console.WriteLine ( "פנה ימינה יושם בהצלחה");
}
אחר
{
Console.WriteLine ( "שגיאת המכונית לא זז מהמקום פנה ימינה הוא כרגע הפעולה, אי אפשר לבצע ..");
}
}
}
}
Similar articles
Trending Now