6 תשובות
זה אומר שכל דבר הוא מושג, יש את object וכולם יורשים ממנו.
לדוגמא: על כיסא אפשר לשבת.
במכונית אפשר לנהוג.
לכיסא יש 3 רגליים.
למכונית יש חצי מכל דלק.
יש לך מבני נתונים שקוראים להם class או stract ויש להם תכונות (ירוק/גבוה/מגניב) ויש להם פעולות (לשבת/לנהוג/למלא).
לדוגמא: על כיסא אפשר לשבת.
במכונית אפשר לנהוג.
לכיסא יש 3 רגליים.
למכונית יש חצי מכל דלק.
יש לך מבני נתונים שקוראים להם class או stract ויש להם תכונות (ירוק/גבוה/מגניב) ויש להם פעולות (לשבת/לנהוג/למלא).
שואל השאלה:
תודהה
תודהה
אנונימי
ווי, הסברתי את זה נורא ואיום.
אז ככה, במקום שיהיו לך המון משתנים שייצגו דברים כמו אורך של מערך, הממוצע שלו, מערך, וכמות האברים הזוגיים בו אז יהיה לך class אחד שהוא מייצג מערך עם נתונים עליו, ואז אפשר להפעיל עליו פעולות כמו sort וכדומה
אז ככה, במקום שיהיו לך המון משתנים שייצגו דברים כמו אורך של מערך, הממוצע שלו, מערך, וכמות האברים הזוגיים בו אז יהיה לך class אחד שהוא מייצג מערך עם נתונים עליו, ואז אפשר להפעיל עליו פעולות כמו sort וכדומה
זה פשוט שושלת של דברים.
למשל אתה מגדיר מחלקה שנקראית מכונית.
ואז צריך להגדיר חלקים למכונית. אז אתה מגדיר מחלקה של גלגל, מחלקה של מנוע ומחלקה של הילוכים. לכל מחלקה יש את התכונות שלה. למשל לגלגל יש את התכונה "להסתובב" למנוע יש תכונה של "פועל או כבוי" ולהילוכים יש "הילוך נוכחי".
המחלקה מכונית יכולה להכיל מחלקות אחרות בתוכה (במקרה שלנו את הגלגל, המנוע וההילוכים)
ואז יש עוד מושג שנקרא הורשה. למשל יש לנו מכונית רגילה (שיש לה את כל התכונות שאמרתי קודם גלגל מנוע הילוכים) ויש מכונית ספורט. למכונית ספורט יש אופציה לגג נפתח. אז היא יורשת את התכונות של המכונית הרגילה פלוס תכונה של גג נפתח.
זה בייסיקלי תכנות מונחה עצמים.
מגיע לי פרח על זה
למשל אתה מגדיר מחלקה שנקראית מכונית.
ואז צריך להגדיר חלקים למכונית. אז אתה מגדיר מחלקה של גלגל, מחלקה של מנוע ומחלקה של הילוכים. לכל מחלקה יש את התכונות שלה. למשל לגלגל יש את התכונה "להסתובב" למנוע יש תכונה של "פועל או כבוי" ולהילוכים יש "הילוך נוכחי".
המחלקה מכונית יכולה להכיל מחלקות אחרות בתוכה (במקרה שלנו את הגלגל, המנוע וההילוכים)
ואז יש עוד מושג שנקרא הורשה. למשל יש לנו מכונית רגילה (שיש לה את כל התכונות שאמרתי קודם גלגל מנוע הילוכים) ויש מכונית ספורט. למכונית ספורט יש אופציה לגג נפתח. אז היא יורשת את התכונות של המכונית הרגילה פלוס תכונה של גג נפתח.
זה בייסיקלי תכנות מונחה עצמים.
מגיע לי פרח על זה
תכנות מונחה עצמים מבוסס על הרעיון שבו כל דבר נחשב אובייקט, ומשתייך למחלקה. לרוב המחלוקות יש מתודות שהן הפעולות שניתן לבצע על אותם אובייקטים. בנוסף לכך, לרוב גם יש attributes שהן התכונות של האובייקטים והמחלקה. לכל attribute של אובייקט אמור להיות ערך שניתן להראות על המסך (על אם מדובר בattribute שהוא מתודה אבסטרקטית). ניתן גם להגדיר attributes מחדש, ואפילו להוסיף ולהסיר אותם.
דוגמה:
האובייקט 'hello world' הוא מחרוזת המשתייכת אל המחלקה הבנוייה בפייתון 3 בשם str.
דוגמה:
האובייקט 'hello world' הוא מחרוזת המשתייכת אל המחלקה הבנוייה בפייתון 3 בשם str.
בקצרה, זה תכנות שמתבסס על יצירת אובייקטים שמסוגלים להכיל מידע, ולבצע פעולות.
הכי טוב להבין זה עם דוגמה - למשל אני רוצה לעשות תוכנה בjava שמנהלת בית חכם - למשתמש יהיה טלפון פשוט שהוא יכול להפעיל דרכו את המזגן בסלון וכו'.
אז ככל הנראה, אעשה אובייקט "סלון", ששם יהיו פעולות כמו "הפעל את המזגן", "כבה את הטלוויזיה" וכדומה.
כמו כן אעשה אובייקט "חדר שינה", שיכיל דברים דומים וכדומה.
ואז, אם המשתמש רוצה לכבות את המזגן בסלון, כל מה שאני בתור מתכנת צריך לעשות זה "גש לאובייקט סלון ->הפעל את הפעולה "כבה מזגן" ".
זה הרעיון. כמובן שיש את התכנות הפרוצדורלי, ("ההפך מתכנות מונחה עצמים"), ששם אם הייתי רוצה לתכנת בית חכם שכזה, הייתי צריך להגדיר פעולה(פונקציה) אחת "כבה מזגן", אבל היא לא יודעת שמדובר בסלון! לכן צריך להגיד לה (להעביר באמצעות פרמטר) "סלון".
הכי טוב להבין זה עם דוגמה - למשל אני רוצה לעשות תוכנה בjava שמנהלת בית חכם - למשתמש יהיה טלפון פשוט שהוא יכול להפעיל דרכו את המזגן בסלון וכו'.
אז ככל הנראה, אעשה אובייקט "סלון", ששם יהיו פעולות כמו "הפעל את המזגן", "כבה את הטלוויזיה" וכדומה.
כמו כן אעשה אובייקט "חדר שינה", שיכיל דברים דומים וכדומה.
ואז, אם המשתמש רוצה לכבות את המזגן בסלון, כל מה שאני בתור מתכנת צריך לעשות זה "גש לאובייקט סלון ->הפעל את הפעולה "כבה מזגן" ".
זה הרעיון. כמובן שיש את התכנות הפרוצדורלי, ("ההפך מתכנות מונחה עצמים"), ששם אם הייתי רוצה לתכנת בית חכם שכזה, הייתי צריך להגדיר פעולה(פונקציה) אחת "כבה מזגן", אבל היא לא יודעת שמדובר בסלון! לכן צריך להגיד לה (להעביר באמצעות פרמטר) "סלון".
באותו הנושא: