ירושה הגדרת קשר Is A.

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
מבוא למדעי המחשב לתעשייה וניהול
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
האוניברסיטה העברית בירושלים
חוקי Association ד " ר אבי רוזנפלד. המוטיבציה מה הם הדברים שהולכים ביחד ? –איזה מוצרים בסופר שווה לשים ביחד –מערכות המלצה – Recommendation Systems שבוע.
חיפוש בינה מלאכותית אבי רוזנפלד. סוגי חיפוש כלליים UNINFORMED SEARCH -- חיפושים לא מיודעים במרחי מצבים – BFS – DFS INFORMED SEARCH – חיפושים מיודעים –
Present Progressive Present Progressive הווה עכשווי / ממושך.
“Joseph had a little overcoat” In “Whales” class Austin The teacher: Dalia Zisman.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
מתמטיקה בדידה תרגול 3.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מרצה: פרופסור דורון פלד
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
1 הורשה ופולימורפיזם צורה ריבוע עיגול משושה. 2 מוטיבציה: מוטיבציה: אפליקציית חלונות טיפוסית – נעזרת בפקדים (Widgets) Button Textbox Label Form.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
עקרון ההכלה וההדחה.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
Kashrut is a mitzvah in the Torah and has been passed on through generations. Kashrut is a chok. this means that we don’t know why we do it but we.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
מבוא למדעי המחשב הרצאה 18: פולימורפיזם ומחלקות אבסטרקטיות 1.
1 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים פולימורפיזם מתקדם ממשקים בג ' אווה 1.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
קשר לוגי : סיבה ותוצאה. במשפט – דוגמות קלות בגלל הגשם החלטנו לא לנסוע לטיול לחיפה. הרצון שלי להצליח הניע אותי להשקיע בלימודים. ציפורים נודדות בין יבשות.
פס על כל העיר נורית זרחי.
Java Reflection הוכן על-ידי אחמד ג'בארה
קצת היסטוריה 1981דיווח ראשון על תסמונת כשל חיסוני נרכש בקרב מספר הומוסקסואלים. 1981דיווח על ביטויים שונים של איידס בקרב מזריקי סמים, חולי המופיליה, מקבלי.
שימוש בעצם ממחלקה אחרת כמאפיין במחלקה הנוכחית
האוניברסיטה העברית בירושלים
© Keren Kalif JDBC קרן כליף.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Object Oriented Programming
Tirgul 12 Trees 1.
Object Oriented Programming
ריקי דרורי דירקטורית שיווק איזורית, גוגל אירופה ומזה"ת
Formal Specifications for Complex Systems (236368) Tutorial #1
תרגול 7: מנשקים, פולימורפיזם ועוד
מחלקות classes.
Present simple הווה פשוט
הורשה ופולימורפיזם צורה ריבוע משושה עיגול תרגול 13: ירושה
על כלבים ואנשים... About dogs and people….
מבוא לתכנות מונחה עצמים Object Oriented Programming
תכנות מכוון עצמים ושפת JAVA
Static and enum קרן כליף.
חלק 3: מבוא ל- XPath XML Path Language Spring 2005.
תכנות מכוון עצמים בשפת JAVA
ממשקים - interfaces איך לאפשר "הורשה מרובה".
ניתוח מערכות מידע תכנות ב C#
תכנות מכוון עצמים ושפת JAVA
תכנות מכוון עצמים ושפת JAVA
מבוא לתכנות מונחה עצמים Object Oriented Programming
תוכנה 1 תרגול 13 – סיכום.
פולימורפיזם מתקדם ממשקים בC# עריכה ועיצוב: קרן הרדי
Presentation transcript:

ירושה הגדרת קשר Is A

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

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

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

על סמך מה שנאמר קודם ניתן להגיד ש- סוג של תלמיד בן אדם קשר Is A

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

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

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

נראה דוגמא- מחלקת Person class Person{ private int id; private String firstN; private String lastN; private int yob; public int getID( ){return this.id;} public String getFirstName( ){return this.firstN;} public String getLastName( ) {return this.lastN;} public int getAge ( ) {return 2009-yob;} public void setId(int id){this.id = id;} public void setFirstName (String f){this.firstN = f;} public void setLastName (String l){this.lastN = l;} public void setYob (int yob){this.yob = yob;} public String toString ( ) { return “# “ + id + “ “ + firstN + “ “ + lastN + “ is “ + getAge( ) + “years old”; } נראה דוגמא- מחלקת Person

נגדיר עכשיו Student class Student extends Person{ private String school; private String grade; private int[] grades = new int [10]; public String getSchool( ){return this.school;} public String getGrade (){return this.grade;} public int getAverage( ){ int count=0; double sum=0; for (int i=0;i<grades.length;i++) if (grades[i]!=0) { count++; sum += grades[i]; } if (count >0) return Math.round (sum/count); return 0; public void setSchool (String s){this.school = s;} public void setGrade (String g){this.grade = g;} public void setGrades (int subject, int grade){ grades[subject-1] = grade;} נגדיר עכשיו Student

Student student = new Student( ); s. setId (7588); s Student student = new Student( ); s.setId (7588); s.setFirstName (“Yona”); s.setLastName (“Whale”); s.setSchool (“Lady Davis”); s.setGrade (“10th”); s.setGrades(2,90); s.setGrades (4,100); רגע, האם זה עובד?? עכשיו לעבודה....

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

מחלקת העל מזוהה אצלי כ- super (מילה שמורה) מחלקת העל מזוהה אצלי כ- super (מילה שמורה). כל פעם שארצה להתייחס לחלק של מחלקת העל, אקדים וארשום super לדוגמא: super.id רישום super.id הוא שגוי משום ש-id מוגדר כ- private. השתמשתי רק לצורך ההמחשה. מחלקת העל - super

Person Student HighSchoolStudent מבנה היררכי

בינתיים לא הגדרנו שיטה בונה עבור מחלקת person ועבור מחלקת Student שיטה בונה עבור Person public Person(int id, String f, String l, int y) { setId(id); setFirstName (f); setLastName (l); setYob( y); } אם התוספת הזו, התוכנית שלנו מפסיקה לעבוד! כעת Student אינו מזמן שיטה בונה של Person ולכן כדי לייצור Student תחילה אנו צריכים לייצור Person! שימוש בשיטה בונה

שיטה בונה של מחלקה נגזרת כדי לייצור אובייקט מסוג Student תחילה נצטרך לייצור אובייקט מסוג Person public Student (int id, String f, String l, int y, String school, String g){ super (id,f,l,y); setSchool (school); setGrade (g); } באמצעות ה-super הזמנתי את השיטה הבונה של Person וכעת נשאר לי להשלים את מה שלא מוגדר ב-Person שיטה בונה של מחלקה נגזרת