מחשביםתכנות

אש"ף - מה זה? העקרונות הבסיסיים של תכנות מונחה עצמים

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

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

בשפות פרוצדורליות

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

הפרדה של פונקציות

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

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

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

הפרדה של פונקציות ומודולים - אחת מאבני הפינה של תכנות מובנה, אשר במשך כמה עשורים עד אש"ף היה שהוא מציב פרדיגמה.

בעיות תכנות מובנה

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

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

מה הם הגורמים לבעיות אלה הקשורים בשפות פרוצדורליות? ראשית, יש את הפונקציות גישה בלתי מוגבלת נתונים גלובליים. שנית, פרוצדורות שאינן קשורות וערכים רעים לדמות את העולם האמיתי.

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

גישה בלתי מוגבלת

התוכנית כתובה, למשל, ב- C, ישנם שני סוגים של נתונים. מקומי חבוי בתוך הפונקציה ונהלים אחרים אינם בשימוש.

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

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

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

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

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

במיפוי העולם האמיתי

הבעיה השנייה וחשובה יותר של הפרדיגמה פרוצדורלית היא ספציפית מיקומו נתונים ופונקציות גרועים המדמה הדברים בעולם האמיתי. כאן אנו מתמודדים עם חפצים כגון אנשים או מכוניות. הם כמו אין נתונים או הפונקציה. יש עצמים בעולם האמיתי Complex תכונות והתנהגות.

תכונות

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

התנהגות

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

בהתייחסו

המטרה ב OOP מיוצגת כמערכת של נתונים ופונקציות. רק את הנהלים כי נקראים פונקציות חבר ב- C ++, מאפשרים להשיג מערכו. אלו מוסתרות ומוגנות מפני שינויים. משמעויות ופונקציות כמוסות לתוך אחד. אנקפסולציה upryatyvanie - מושגי יסוד התיאור של שפות מונחות עצמים.

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

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

כיום, OOP בשפה הנפוץ ביותר (תכנות מונחה עצמים) - ++ C (פלוס פלוס). ב- Java חסר כמה תכונות כגון מצביעים, תבניות מרובות ירושה, מה שהופך אותו פחות חזקים צדדיים מ C ++. # C עדיין לא הגיע הפופולריות של C ++.

יצוין כי מה שנקרא פונקציות חבר בשיטות C ++ שנקרא בכמה שפות תכנות מונחה עצמים אחרים כגון Smalltalk. פריטי הנתונים נקראים תכונות. קורא שיטה של האובייקט שולח לו הודעות.

אנלוגיה

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

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

המטרה ב OOP: Definition

כאשר שוקלים את בעיית התכנות בשפה מונחה עצמים במקום שאלות על חלוקתה פונקציות נפרדות היא בעיה במתקני ההפרדה. חשיבת OOP היא הרבה יותר קלה לפתח יישומים. זאת בשל הדמיון של תוכנות ואובייקטים אמיתיים.

איזה סוג של דברים הם אובייקטים OOP? הנה כמה קטגוריות טיפוסיות.

אובייקט פיזי ב OOP - הוא:

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

אלמנטים של סביבת המחשב של המשתמש:

  • תפריט;
  • חלונות;
  • גרפיקה (קו, מלבן, עיגול);
  • מקלדת, עכבר, מדפסת, כונני דיסקים.

אנשים:

  • עובדים;
  • תלמידים;
  • לקוחות;
  • מוכרים.

מידע:

  • וחשבונאות;
  • עניין פרטי;
  • מילון;
  • טבלת רוחב ואת קווי האורך של התנחלויות.

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

בכיתה

אובייקטים באש"ף - חבר לכיתה. מה זה אומר? בשפות תכנות יש מובנית סוגי נתונים. סוג int, t. E. מספר שלם קבוע מראש ב- C ++. אתה יכול להצהיר על מספר משתנה int.

בדומה לכך, ריבוי של עצמים המוגדרים על ידי מחלקה אחת. היא מגדירה את הפונקציות ואת הנתונים הכלולים מתקניה, לא יוצרים אותם, כמו גם int אינה יוצרת משתנים.

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

ירושה

בחיים, כיתות מחולקות subclasses. לדוגמה, חיות מחולקים דו-חיים, יונקים, ציפורים, חרקים וכן הלאה. ד

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

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

מחזור

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

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

יצירת סוגי נתונים חדשים

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

position1 = עמדה + ממוצא,

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

פולימורפיזם, עומס יתר

= מפעילים (שווה), ו + (פלוס) השתמשו בחשבון מיקומית לעיל אינו פועל כמו גם מובנה סוגים, כגון int. חפץ תפקיד, ואחרים. האם לא מראש ולהגדיר ידי תוכנה. איך מפעילים אלה יודעים איך לטפל בהם? התשובה נעוצה בעובדה כי התנהגויות חדשות ניתן להגדיר עבורם. פעולות אלו תהיינה תפקיד מח' פונקציות חבר.

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

ספר על "תכנות מונחה עצמים for Dummies" אש"ף יאפשר לכולם להכיר את הנושא הזה ביתר פירוט.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 iw.unansea.com. Theme powered by WordPress.