פרסומת

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

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

לפני שנתחיל: שפות פרוצדורליות

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

מה תכנות מונחה עצמים ואיך להתחיל ללמוד אותה

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

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

מטרת התכנות מונחה עצמים

אם כן, מהי תכנות מונחה עצמים?

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

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

instagram viewer
מה תכנות מונחה עצמים ואיך להתחיל ללמוד אותה

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

  • צבע
  • גובה
  • צורה
  • תנועה מותרת

אובייקט פשוט מגדיר מופע מסוים אחד של דבר השייך למעמד ההוא.

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

מה עושה את זה כל כך טוב יותר מהגישה הפרוצדוראלית?

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

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

תכנות מונחה עצמים: הפשטה

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

מה תכנות מונחה עצמים ואיך להתחיל ללמוד אותה

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

אבל אתה לא צריך לדעת את זה. כל שעליך לדעת הוא שכשאתה אומר לחתיכה לזוז, הוא זז. זו הפשטה.

תכנות מונחה עצמים: אנקפסולציה

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

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

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

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

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

תכנות מונחה-עצמים: ירושה

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

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

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

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

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

תכנות מונחה-עצמים: פולימורפיזם

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

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

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

תכנות מונחית עצמים על קצה המזלג

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

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

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

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

דן הוא אסטרטגיית תוכן ויועץ שיווקי המסייע לחברות לייצר ביקוש ומובילים. הוא גם מבלוג על אסטרטגיה ושיווק תוכן ב- dannalbright.com.