מחשביםתוכנה

בכיתה ושיטת תקציר: תיאור, מאפיינים ותכונות. מה שונה מהממשק בכיתה המופשט

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

כיתות מופשטות

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

שיטות מופשטות

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

תכונות שיטות מופשטות

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

ממשק

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

ירושה מרובה של ממשקים

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

נתונים מופשטים

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

אובייקטים

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

ירושה

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

פולימורפיזם

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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