תוכנה 1 תשס"ח סמסטר ב' אוהד ברזילי ליאור שפירא

Slides:



Advertisements
מצגות קשורות
תוכנה 1 בשפת Java שיעור מספר 5: עצמים
Advertisements

© Keren Kalif JPA קרן כליף.
מבנה מחשבים ספרתיים זיכרון מטמון - המשך
תוכנה 1 בשפת Java שיעור מספר 9: "יוצא מן הכלל"
מבוא לתכנות ב-JAVA מעבדה 1
תוכנה 1 תרגול 13 – סיכום.
תרגול 1: סביבת העבודה ומבוא ל-Java
תוכנה 1 בשפת Java שיעור מספר 4: מחלקות
לולאות Department of Computer Science-BGU 19 יולי 19.
תרגול 5: לולאות ומערכים.
תוכנה 1 תרגול 12 – סיכום.
Isotopes and Atomic Mass
תרגול מס' 8 משתנים מיוחסים מבוא ל-C++ קלט/פלט ב-C++
תירגול 10: מבנים (structs) וקבצים
Marina Kogan Sadetsky –
תוכנה 1 בשפת Java שיעור מספר 10: "ירושה נכונה" (הורשה II)
Jump tables, review questions
תכנות בשפת C תרגול 11 רשימות מקושרות מבנים
תרגול Introduction to C - Fall Amir Menczel.
תירגול 11: מיונים וחיפוש בינארי
תרכובות עם יונים פוליאטומים בחיי היום יום
תוכנה 1 בשפת Java שיעור מספר 13: "אל תסתכל בקנקן"
יסודות מבני נתונים תרגול 13: עץ פורש מינימלי - Minimum Spanning Tree (MST)
Entity Relationship Diagram – ERD
תכנות בשפת C תרגול 8 רקורסיה
מבני נתונים תרגול 3 ליאור שפירא.
Akiba Academy of Dallas Presents
תירגול 8:מצביעים והקצאה דינאמית
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
תירגול 2: מבוא לתיכנות ב-C
תוכנה 1 בשפת Java שיעור מספר 5: מנשקים תחילה
מוטיבציה והשוואה בין מבני נתונים שלמדנו
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
Web Services Delegates and Events ליווי מקצועי : ארז קלר
Direction of induced current
מבוא לתכנות מונחה עצמים Object Oriented Programming
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
שם הגננת: עדנה סרי The teacher: Edna Seri
תורת הקומפילציה תרגול 9: תרגום לקוד ביניים
יישומון הר לעמק 2019 הוראות הפעלה.
Computer Architecture and System Programming Laboratory
תיעוד מפעילויות ראש השנה בגן "פרפר נחמד" –עכו-תש"ע
המשך תכנות מונחה עצמים תרגול מס' 9.
כל הזכויות שמורות לגבריאל אנקרי © 2017
Elements and Symbols יסודות וסמלים מהם יסודות? gold carbon aluminum
תוכנה 1 בשפת Java שיעור מספר 8: "ירושה נכונה" (הורשה II)
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
תוכנה 1 תרגול - Generics.
What is Chemistry? מהי כימיה? Chemistry is the study of matter and its
שימוש בעצם ממחלקה אחרת כמאפיין במחלקה הנוכחית
מבוא לתכנות ב- JAVA מעבדה 4
מבוא לתכנות בWINDOWS ד"ר אבי רוזנפלד.
מבוא למדעי המחשב סמסטר ב' – 2008 מרצה: יעל סיגל מתרגל: ענבל בודובסקי.
עקרונות תכנות מונחה עצמים תרגול 8: OOP in C++
תוכנה 1 בשפת Java שיעור מספר 12:"צייר לי כבשה" (GUI)
לאינטל ירושלים דרושים סטודנטים להנדסת תוכנה/ מדעי המחשב להשתלבות במחלקות הפיתוח להשתלבות בצוות בדיקות קושחה (FW), התפקיד כולל לימוד מעמיק של תכונות ופרוטוקולים.
תוכנה 1 - תרגול תרגיל – חברת הייטק בית הספר למדעי המחשב
מעבדה 2- עיצוב (עבור חלק ג)
תוכנה 1 בשפת Java שיעור חזרה
עקרונות תכנות מונחה עצמים תרגול 9:C++ - תרגילים
תוכנה 1 בשפת Java שיעור מספר 10: "ירושה נכונה" (הורשה II)
יינון המים In the ionization of water,
ציון לוי מנהל אגף פרישה וגמלאות
תוכנה 1 בשפת Java הקדמה שחר מעוז בית הספר למדעי המחשב
תמליל מצגת:

תוכנה 1 תשס"ח סמסטר ב' אוהד ברזילי ליאור שפירא אתחולים ובנאים תוכנה 1 תשס"ח סמסטר ב' אוהד ברזילי ליאור שפירא

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

מה הסדר ביצירת מופע של מחלקה? שלב ראשון: הקצאת זיכרון לשדות העצם והצבת ערכי ברירת מחדל שלב שני: נקרא הבנאי (לפי חתימת new) והאלגוריתם הבא מופעל: Bind constructor parameters. If explicit this(), call recursively, and then skip to Step 5. Call recursively the implicit or explicit super(...) [except for Object because Object has no parent class] Execute the explicit instance variable initializers. Execute the body of the current constructor.

דוגמא public class Object { public Object() {} // … } public class Employee extends Object { private String name; private double salary = 15000.00; private Date birthDate; public Employee(String n, Date DoB) { // implicit super(); name = n; birthDate = DoB; } public Employee(String n) { this(n, null); { public class Manager extends Employee { private String department; public Manager(String n, String d) { super(n); department = d; }

הרצת הדוגמא מה קורה כאשר ה JVM מריץ את השורה Manager m = new Manager(“Joe Smith”, “Sales”); שלב ראשון: הקצאת זיכרון לשדות העצם והצבת ערכי ברירת מחדל (String)Name (double)Salary (Date)Birth Date (String)Department

תמונת הזכרון “Joe Smith” null 15000.0 0.0 null “Sales” null (String) Name (double) Salary (Date) Birth Date (String) Department “Joe Smith” null 15000.0 0.0 null “Sales” null Basic initialization Allocate memory for the complete Manager object Initialize all instance variables to their default values Call constructor: Manager("Joe Smith", "Sales") Bind constructor parameters: n="Joe Smith", d="Sales" No explicit this() call Call super(n) for Employee(String) Bind constructor parameters: n="Joe Smith" Call this(n, null) for Employee(String, Date) Bind constructor parameters: n="Joe Smith", DoB=null Call super() for Object() No binding necessary No this() call No super() call (Object is the root) No explicit variable initialization for Object No method body to call Initialize explicit Employee variables: salary=15000.00; Execute body: name="Joe Smith"; date=null; Steps skipped Execute body: No body in Employee(String) No explicit initializers for Manager Execute body: department="Sales" public class Employee extends Object { private String name; private double salary = 15000.00; private Date birthDate; public Employee(String n, Date DoB) { // implicit super(); name = n; birthDate = DoB; } public Employee(String n) { this(n, null); 1. Bind parameters. 2. If explicit this(), goto 5. 3. super(), 4. explicit var. init. 5. Execute body public class Manager extends Employee { private String department; public Manager(String n, String d) { super(n); department = d; }