Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "ירושה הגדרת קשר Is A."— Presentation transcript:

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

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

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

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

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

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

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

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

9 נראה דוגמא- מחלקת 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

10 נגדיר עכשיו 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

11 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); רגע, האם זה עובד?? עכשיו לעבודה....

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

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

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

15 בינתיים לא הגדרנו שיטה בונה עבור מחלקת 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! שימוש בשיטה בונה

16 שיטה בונה של מחלקה נגזרת
כדי לייצור אובייקט מסוג 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 שיטה בונה של מחלקה נגזרת


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

Similar presentations


Ads by Google