המטרה העיקרית של תכנות C++ היא להציג את הרעיון של אוריינטציה עצמית לשפת התכנות C.
תכנות מונחה עצמים היא פרדיגמה המספקת מושגים רבים כגון ירושה, כריכת נתונים, פולימורפיזם וכו'.
פרדיגמת התכנות שבה הכל מיוצג כאובייקט ידועה כשפת תכנות מונחה עצמים באמת. שיחת חולין נחשבת כשפת התכנות הראשונה באמת מונחה עצמים.
OOPs (מערכת תכנות מונחה עצמים)
לְהִתְנַגֵד פירושו ישות של מילה אמיתית כגון עט, כיסא, שולחן וכו'. תכנות מונחה עצמים היא מתודולוגיה או פרדיגמה לעיצוב תוכנית באמצעות מחלקות ואובייקטים. זה מפשט את הפיתוח והתחזוקה של התוכנה על ידי מתן כמה מושגים:
רשימה של גופנים ב-gimp
- לְהִתְנַגֵד
- מעמד
- יְרוּשָׁה
- רב צורתיות
- הַפשָׁטָה
- כימוס
לְהִתְנַגֵד
כל ישות שיש לה מצב והתנהגות ידועה כאובייקט. לדוגמא: כיסא, עט, שולחן, מקלדת, אופניים וכו'. זה יכול להיות פיזי והגיוני.
מעמד
אוסף חפצים נקרא כיתה. זו ישות הגיונית.
Class ב-C++ הוא המרכיב הבסיסי שמוביל לתכנות מונחה עצמים. יש ליצור מופע מחלקה כדי לגשת ולהשתמש באברי הנתונים ובפונקציות האיברים של סוג הנתונים המוגדר על ידי המשתמש. מחלקה של אובייקט פועלת כשרטוט שלו. קח את מחלקת המכוניות כדוגמה. גם אם שמות ומותגים שונים עשויים לשמש עבור מכוניות שונות, לכולם יהיו כמה מאפיינים משותפים, כגון ארבעה גלגלים, הגבלת מהירות, טווח של מיילים וכו'. במקרה זה, מחלקת המכוניות מיוצגת על ידי הגלגלים, מגבלות המהירות והקילומטראז'.
יְרוּשָׁה
כאשר אובייקט אחד רוכש את כל המאפיינים והתנהגויות של אובייקט אב כלומר ידוע בתור ירושה. זה מספק שימוש חוזר בקוד. הוא משמש להשגת פולימורפיזם בזמן ריצה.
- תת מחלקה - תת מחלקה או מחלקה נגזרת מתייחסת למחלקה שמקבלת מאפיינים ממחלקה אחרת.
- Super class - המונח 'Base Class' או 'Super Class' מתייחס למחלקה שממנה תת מחלקה יורשת את תכונותיה.
- שימוש חוזר - כתוצאה מכך, כאשר אנו מעוניינים ליצור מחלקה חדשה, אך מחלקה קיימת כבר מכילה חלק מהקוד שאנו צריכים, אנו יכולים להפיק את המחלקה החדשה שלנו מהמחלקה הישנה הודות להורשה. זה מאפשר לנו לנצל את השדות והשיטות של המחלקה הקיימת.
רב צורתיות
מתי משימה אחת מבוצעת בדרכים שונות כלומר מכונה פולימורפיזם. לדוגמא: לשכנע את הלקוח אחרת, לצייר משהו למשל. צורה או מלבן וכו'.
מצבים שונים עלולים לגרום לניתוח להתנהג אחרת. סוג הנתונים המשמשים בפעולה קובע את ההתנהגות.
הַפשָׁטָה
הסתרת פרטים פנימיים והצגת פונקציונליות ידוע בשם הפשטה. הפשטת נתונים היא תהליך של חשיפה לעולם החיצון רק את המידע הדרוש לחלוטין תוך הסתרת מידע יישום או רקע. לדוגמה: שיחת טלפון, איננו יודעים את העיבוד הפנימי.
ב-C++, אנו משתמשים במחלקה ובממשק מופשטים כדי להשיג הפשטה.
כימוס
כריכת (או עטיפה) של קוד ונתונים יחד ליחידה אחת ידועה בשם אנקפסולציה. לדוגמא: כמוסה, היא עטופה בתרופות שונות.
נקודת java
אנקפסולציה מובנת בדרך כלל כקיבוץ של פיסות מידע ונתונים קשורים לישות אחת. Encapsulation הוא תהליך של קשירת נתונים יחד עם הפונקציות שעובדות איתם בתכנות מונחה עצמים. תסתכל על המחשה מעשית של אנקפסולציה: בחברה קיימות חטיבות שונות, בהן חטיבת המכירות, חטיבת הכספים וחטיבת החשבונות. כל העסקאות הפיננסיות מטופלות על ידי המגזר הפיננסי, אשר שומר גם רישומים של כל הנתונים הפיננסיים. ברוח דומה, מדור המכירות אחראי על כל המשימות הנוגעות למכירות ומנהל רישום של כל מכירה. כעת, תרחיש יכול להתרחש כאשר, מסיבה כלשהי, פקיד פיננסי דורש את כל המידע על מכירות עבור חודש מסוים. תחת מונח הגג 'מדור מכירות', כל העובדים שיכולים להשפיע על נתוני מדור המכירות מקובצים יחד. הפשטה או הסתרת נתונים היא תופעת לוואי נוספת של אנקפסולציה. באותו אופן שהאנקפסולציה מסתירה את הנתונים. בדוגמה שהוזכרה לעיל, כל אזור אחר אינו יכול לגשת לאף אחד מהנתונים מאף אחד מהסעיפים, כגון מכירות, פיננסים או חשבונות.
כריכה דינמית - בכריכה דינמית מתקבלת החלטה בזמן הריצה לגבי הקוד שיופעל בתגובה לקריאת פונקציה. לשם כך, C++ תומך בפונקציות וירטואליות.
היתרון של OOPs על פני שפת תכנות מוכוונת פרוצדורות
- OOPs מקל על פיתוח ותחזוקה, כאשר כמו בשפת תכנות מונחה פרוצדורה, זה לא קל לנהל אם הקוד גדל ככל שגודל הפרויקט גדל.
- OOPs מספקים הסתרת נתונים ואילו בשפת תכנות מכוונת פרוצדורה ניתן לגשת לנתונים גלובליים מכל מקום.
- OOPs מספקים יכולת לדמות אירועים בעולם האמיתי בצורה יעילה הרבה יותר. אנו יכולים לספק פתרון לבעיית מילים אמיתיות אם אנו משתמשים בשפת התכנות מונחה עצמים.
למה אנחנו צריכים אופס ב-C++?
היו חסרונות שונים לשיטות התכנות המוקדמות, כמו גם ביצועים גרועים. הגישה לא יכלה לטפל ביעילות בבעיות בעולם האמיתי שכן, בדומה לתכנות מונחה פרוצדורליות, לא ניתן היה להשתמש שוב בקוד בתוך התוכנית, היה קושי בגישה לנתונים גלובליים וכן הלאה.
בעזרת שימוש במחלקות ואובייקטים, תכנות מונחה עצמים הופך את תחזוקת הקוד לפשוטה. מכיוון שהירושה מאפשרת שימוש חוזר בקוד, התוכנית פשוטה יותר מכיוון שלא צריך לכתוב את אותו הקוד שוב ושוב. הסתרת נתונים מסופקת גם על ידי רעיונות כמו אנקפסולציה והפשטה.
java int למחרוזת
מדוע C++ הוא oop חלקי?
התכונות מוכוונות האובייקט של שפת C היו המניע העיקרי מאחורי בניית שפת C++.
שפת התכנות C++ מסווגת כשפת תכנות מונחה עצמים חלקית למרות העובדה שהיא תומכת במושגי OOP, כולל מחלקות, אובייקטים, ירושה, אנקפסולציה, הפשטה ופולימורפיזם.
1) הפונקציה הראשית חייבת להיות תמיד מחוץ למחלקה ב-C++ והיא נדרשת. זה אומר שאנחנו עשויים להסתדר בלי מחלקות ואובייקטים ויש לנו פונקציה מרכזית אחת באפליקציה.
זה בא לידי ביטוי כאובייקט במקרה הזה, שזו הפעם הראשונה ש-Pure OOP מופר.
2) משתנים גלובליים הם תכונה של שפת התכנות C++ שניתן לגשת אליה על ידי כל אובייקט אחר בתוך התוכנית ומוגדרים מחוצה לה. האנקפסולציה נשברת כאן. למרות ש-C++ מעודד אנקפסולציה עבור מחלקות ואובייקטים, הוא מתעלם ממנו עבור משתנים גלובליים.
עומס יתר
לפולימורפיזם יש גם תת-קבוצה המכונה עומס יתר. אומרים שמפעיל או פונקציה קיימים מועמסים יתר על המידה כאשר הוא נאלץ לפעול על סוג נתונים חדש.
סיכום
תקבל הבנה של הצורך בתכנות מונחה עצמים, מה הם C++ OOPs, ואת היסודות של OOPs, כגון פולימורפיזם, ירושה, אנקפסולציה וכו', לאחר קריאת קורס זה על OOPS Concepts ב-C++. יחד עם מקרים של פולימורפיזם ותורשה, למדת גם על היתרונות של C++ OOPs.