חיפוש באתר

אנקפסולציה היא מה? אנקפסולציה בתכנות

אנקפסולציה הוא אחד משלושת הראשיתכונות של תכנות מונחה עצמים (OOP). השניים האחרים הם פולימורפיזם וירושה. יחד הם מהווים את הבסיס של אש"ף, הקובע את מכלול האפשרויות לכתיבת תוכניות בשפות שונות, תוך שימוש בשלושת העקרונות הללו. בשפות מונחה עצמים, בתורו, נדרשים לעקוב אחריהם בבירור.

אנקפסולציה היא

יסודות OOP

תכנות מונחה עצמים ניצב על שלושה עמודים של היקום שלו:

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

טרמינולוגיה

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

מושגים של אנקפסולציה

המהות של המושג "אנקפסולציה"

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

גישה למשתנים

תכנות אנקפסולציה
ישנם שינויים גישה כזו, בין היתר, יכול לתפעל אנקפסולציה (תכנות Java):

  • ציבוריים (ציבוריים - ציבוריים, פתוחים, גישה) - גישה משותפת הן לאובייקטים ולשיעורים הנוכחיים והן עבור העולם החיצוני;
  • פרטית ("פרטית" - פרטית, פרטית, גישה נסתרת) - גישה פרטית, המהות אשר מנוגדת לחלוטין הקודם. מספק גישה רק מהמעמד הנוכחי;
  • מוגן (מוגן, מוסתר למחצה, גישה) - גישה עבור המעמד הנוכחי ונגזרותיו;
  • כברירת מחדל, משנה גישה לא מוגדר מרמז שהשדה / השיטה גלויים עבור כל חבילת הכיתה הנוכחית.

ב 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>
  • דירוג: