םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש...

25
תכנות מונחה עצמים מבט כללי על גישת התכנות מונחה העצמים. מושגים בסיסיים בתכנות מונחה עצמים. עקרונות מרכזיים של הגישה.

Upload: others

Post on 10-Sep-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

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

.מבט כללי על גישת התכנות מונחה העצמים •

.מושגים בסיסיים בתכנות מונחה עצמים •

.עקרונות מרכזיים של הגישה •

Page 2: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

–תכנות מונחה עצמים

OOP - Object Oriented Programming

שהפכה להיות מאוד , גישה לכתיבת תוכניות

בעיקר בזכות שפות , פופולרית בשנים האחרונות .Java-ו ++Cכמו

בני , הגישה אמורה להתאים לדרך החשיבה שלנו

ולכן גם , ולדרך התפיסה שלנו את העולם, האדם

.אמורה להפוך את התכנות למשימה טבעית יותר

Page 3: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

Object -אובייקט

כל דבר שאפשר –שם עצם , אובייקט הוא משהו• .לתאר אותו ושאפשר לדבר עליו

אובייקט הוא רכיב בתוכנה שמתאר חלק • .מהמציאות

Page 4: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

:אובייקטים יכולים לתאר דברים מוחשיים בעולם

Page 5: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

:אובייקטים יכולים לתאר גם דברים פחות מוחשיים

!זה אובייקט –כל עוד אפשר לתאר את זה

Page 6: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

מאפייני האובייקט

(Attributes)תכונות •

(Methods)שיטות •

(Messages)הודעות •

Page 7: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

תכונות

תכונות הן השדות שמתארים את האובייקט •

.ומאפיינים את המצב הפנימי שלו

בן אדם

שם-

גיל-

.ז.מספר ת-

חשבון בנק

מספר חשבון-

שם בעלי החשבון-

יתרה-

Page 8: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

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

?של הישות הפיזית בתוך האובייקט

בן אדם

שם-

גיל-

.ז.מספר ת-

וככזה , האובייקט הוא יצוג של חלק מהמציאות! לא•

אנחנו בוחרים כתכונות רק את מה שרלבנטי

.לאפליקציה הספציפית

Page 9: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

שיטות

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

בן אדם

ללכת לעבודה-

למשוך כסף-

חשבון בנק

למשוך כסף-

להפקיד כסף-

Page 10: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

הודעותמה שמפעיל , ההודעות הן המניע של הפעולות•

.אותן

.הפעולות שבאובייקט יפעלו רק בתגובה להודעה•

אבל דרושה , פוטנציאלהשיטות הן בגדר –כלומר •

.הודעה כדי להפעיל שיטה בן אדם

ללכת לעבודה-

למשוך כסף-

חשבון בנק

למשוך כסף-

להפקיד כסף-

"למשוך כסף"הפעל את השיטה

Page 11: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

Class -מחלקה

התבנית , מחלקה היא האבטיפוס של האובייקט•

.ממנה הוא בנוי

–המחלקה מכילה •

!(.אבל לא את הערכים)את התכונות של האובייקט –

.את השיטות של האובייקט–

.ממחלקה אחת אפשר ליצור אינסוף אובייקטים•

אפשר להסתכל על היחסים בין מחלקה לאובייקט • .כמו היחסים בין שרטוט של בית לבית

Page 12: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

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

?מחלקה

Page 13: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

בן אדם

ללכת לעבודה-

למשוך כסף-

שם-

.ז.מספר ת-

בן אדם

ללכת לעבודה-

למשוך כסף-

"יוסי= "שם -

111.=ז.מספר ת-

בן אדם

ללכת לעבודה-

למשוך כסף-

"דוד= "שם -

222.=ז.מספר ת-

לכולם יש אותן תכונות

כולם יכולים לבצע את אותן פעולות

Page 14: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

שעון יד

להציג שעה-

לכוון שעה-

שעות-

דקות-

שניות-

מנגנון קידום זמן -

נכתוב מחלקה שמייצגת שעון יד פשוט

אילו תכונות יהיו

?לשעון יד

אילו שיטות יהיו

?לשעון יד

Page 15: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

OOPמאפייני

:ישנם שלושה מאפיינים OOPלגישת •

Encapsulation –כימוס –

Inheritance –ירושה –

Polymorphism -רב צורתיות –

Page 16: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

Encapsulation -כימוס

כימוס היא תכונה שאומרת שהמחלקה שומרת •

וחושפת , בתוכה את כל המנגנונים הפנימיים שלה

.למשתמש רק את הממשק החיצוני

התכונה מאוד –" השאירו את המומחיות למומחים"•

!כי אנחנו חיים ככה ביום יום, אינטואיטיבית

מחשב ובעצם כל , מיקרוגל, מכונית –למשל •

...מכשור טכני שאנחנו משתמשים בו

Page 17: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

"השאירו את המומחיות למומחים"

אנחנו לא צריכים להיות מכונאי רכב כדי לנהוג •

ולא מהנדסי חשמל כדי להפעיל תנור , במכונית

.חשמלי

הרעיון בכימוס אומר שהמשתמש לא צריך לדעת •כל עוד הם עובדים ויש לו –איך הדברים עובדים

.ממשק שמאפשר לו לתפעל אותם

Page 18: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

שעון יד

להציג שעה-

לכוון שעה-

שעות-

דקות-

שניות-

מנגנון קידום זמן -

ברור שמנגנון קידום הזמן הוא

חלק מהפעולות שהשעון יודע

אין לנו שום , מצד שני. לבצע

צורך שהמשתמש יתעסק עם

לכן . מנגנון קידום הזמן בעצמו

המחלקה של שעון היד

, עוטפת את הפעולה הזאת

וחושפת למשתמש רק את

.שתי הפעולות האחרות

Page 19: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

עכשיו נניח שנרצה לכתוב מחלקה שמייצגת שעון •

.יד מתקדם יותר

גם יכולת , בנוסף לשעה, לשעון היד המתקדם יהיו•

.תאורה ועוד, שעון עצר, השכמה, להראות תאריך

?איך נייצג את מחלקת שעון היד המתקדם•

Page 20: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

שעון יד

להציג שעה-

לכוון שעה-

שעות-

דקות-

שניות-

מנגנון קידום זמן -

שעון מתקדם

לכוון שעה , להציג שעה-

...להציג תאריך-

שניות, דקות, שעות-

תאריך-

שעת השכמה-

מנגנון קידום זמן -

דברים שנכתבו כבר פעם –כפילות קוד

נכתבים פעם נוספת, אחת

Page 21: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

Inheritance -ירושה

ירושה היא תכונה שאומרת שניתן לבנות מחלקות •

.חדשות על בסיס מחלקות קיימות

את כל בירושה המחלקה החדשה מקבלת •

ויכולה , התכונות והשיטות של מחלקת הבסיס

.להוסיף עליהם דברים משלה

המחלקה היורשת היא סוג של מחלקת , כלומר•

.הבסיס עם תוספות

Page 22: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

שעון

להציג שעה-

לכוון שעה-

שעות-

דקות-

שניות-

מנגנון קידום זמן -

שעוןיורש משעון מתקדם

לכוון שעה , להציג שעה-

...להציג תאריך-

שניות, דקות, שעות-

תאריך-

שעת השכמה-

מנגנון קידום זמן -

שעון מתקדם הוא סוג של שעון

Page 23: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

Polymorphism -רב צורתיות

רב צורתיות היא תכונה פחות אינטואיטיבית •

אובייקט , בתנאים מסויים, שאומרת שלפעמים

.יתנהג כאובייקט מסוג אחר, שהוגדר מסוג אחד

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

Page 24: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

תרגיל

.נסו לכתוב מחלקה שמייצגת מכשיר טלפון סלולרי•

(.?מה מאפיין טלפון נייד)? אילו תכונות יהיו למחלקה–

מה טלפון נייד יכול )? אילו שיטות יהיו למחלקה–

(.?לעשות

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

Page 25: םימצעה החנומ תונכתה תשיג לע יללכ טבמ • השיגה לש םייזכרמ ...shaytavor.com/wp-content/uploads/LectureNotes_P1L2.pdf · םימצע החנומ

.אובייקט•

.שיטות והודעות, תכונות•

.מחלקה•

.כימוס•

.ירושה•

.רב צורתיות•

OOP-סיכום המושגים הבסיסיים ב