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

Slides:



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

Object Oriented Programming with Java
Processes and threads. תהליכים ותתי תהליכים תהליכים –כל תוכנית שרצה היא תהליך (process) –ניתן להתפצל מתהליך אחד למספר תהליכים, בעזרת הפקודה fork(). הרבה.
ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
1 תוכנה 1 תרגול 14 – סיכום. 2 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות : המשתמש יבחר קובץ שעליו הוא רוצה לבצע את האנליזה, וילחץ עליו עם כפתור ימני בעכבר. יפתח תפריט ובו.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
Inheritance. In this chapter, we will cover: The concept of inheritance Extending classes Overriding superclass methods Working with superclasses that.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
JVM-1 Java Virtual Machine Reading Assignment: Chapter 1: All Chapter 3: Sections.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
Java boot camp1 Subclasses Concepts: The subclass and inheritance: subclass B of class A inherits fields and methods from A. A is a superclass of B. Keyword.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות:  המשתמש בוחר קובץ שעליו הוא רוצה לבצע את האנליזה, ולוחץ עליו עם כפתור ימני בעכבר.  נפתח תפריט.
אתחולים ובנאים יצירת מופע חדש של עצם כוללת : הקצאת זכרון, אתחול, הפעלת בנאים והשמה לשדות במסגרת ריצת הבנאי נקראים גם הבנאי / ים של מחלקת הבסיס תהליך זה.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
תוכנה 1 בשפת Java שיעור מספר 1: מתחילים מחדש
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
תחשיב היחסים (הפרדיקטים)
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
1 Introduction to Inheritance Overview l Inheritance ensures Reusability l Example of Inheritance l What is actually Inherited? l Overloading Vs. Overriding.
המשך תכנות מונחה עצמים 1. היום בתרגול  הורשה  שיטות מיוחדות  פולימורפיזם 2.
CS/ENGRD 2110 FALL 2013 Lecture 5: Local vars; Inside-out rule; constructors 1.
 2002 Prentice Hall. All rights reserved. 1 Introduction to Inheritance Inheritance: –1 of 3 main features of OOP –Form of software reusability –(Derived)
Inheritance and Polymorphism Daniel Liang, Introduction to Java Programming.
תוכנה 1 בשפת Java תרגול מספר 8: הורשה אסף זריצקי ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
1 מבוא למדעי המחשב הרצאה 21: Queue, Iterator & Iterable.
MIT AITI 2004 – Lecture 12 Inheritance. What is Inheritance?  In the real world: We inherit traits from our mother and father. We also inherit traits.
Classes. Constructor A constructor is a special method whose purpose is to construct and initialize objects. Constructor name must be the same as the.
Object Inheritance Lecturer: Kalamullah Ramli Electrical Engineering Dept. University of Indonesia Session-4.
2003B Q5 Suppliers(sid, sname, city) Select sid from suppliers where city=‘jerusalem’ or sname like ‘%Smith’ Select sid from suppliers where city=‘jerusalem’
CPRG 215 Introduction to Object-Oriented Programming with Java Module 3- Introduction to Object Oriented Programming concepts Topic 3.4 Constructors, Overloading,
1 CS1110 Classes, stepwise refinement 17 Feb 2009 Miscellaneous points about classes. More on stepwise refinement. Next: wrapper classes. Section 5.1 of.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
שיתוף PDT בין חוטים PDT Thread A Process Descriptor File Object 1 File Object 2 File 1 File 2 pthread_create Thread B Process Descriptor ה PDT משותף לכל.
Object Oriented Programming. Constructors  Constructors are like special methods that are called implicitly as soon as an object is instantiated (i.e.
מחרוזות – הטיפוס String
2-Oct-16 Basic Object-Oriented Concepts. 2 Concept: An object has behaviors In old style programming, you had: data, which was completely passive functions,
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
FAA FAA (int s, int val) { temp = s; s = s + val; return temp; }
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
מחלקות classes.
מבוא לתכנות מונחה עצמים Object Oriented Programming
תוכנה 1 תרגול 13 – סיכום.
תכנות מכוון עצמים בשפת JAVA
ממשקים - interfaces איך לאפשר "הורשה מרובה".
תרגול מס' 6 מחלקות, עצמים, וקצת חוזים
Java Programming Language
בחירת חומר גלם כתב: עמרי שרון.
ניתוח מערכות מידע תכנות ב C#
תכנות מכוון עצמים ושפת JAVA
מבוא לתכנות מונחה עצמים Object Oriented Programming
תוכנה 1 תרגול 13 – סיכום.
مظفر بگ محمدی دانشگاه ایلام
Inheritance.
CS100J Final Class on Classes 10 February 2005
Presentation transcript:

אתחול עצמים

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

תזכורת בשורה הראשונה של כל בנאי חייבים לקרוא לאחד משניים: 1. בנאי של מחלקת האב super(...) אם לא נכתבת קריאה מפורשת, נקרא בנאי ברירת המחדל super() אם אין כזה, תהיה שגיאה! 2. כאשר יש העמסת בנאים – לבנאי אחר בעזרת this(...) בסופו של דבר נגיע לבנאי שקורא ל - super(...). 3 public MyClass(params1) { this(params2);... } public MyClass(params1) { this(params2);... } public MyClass(params2) { this(params3);... } public MyClass(params2) { this(params3);... } public MyClass(paramsN) { super(params);... } public MyClass(paramsN) { super(params);... } public MySuperClass(params) {... } public MySuperClass(params) {... }

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

5 דוגמא public class Employee extends Object { private String name; private double salary = ; 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; } public class Object { public Object() {} // … } {

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

תמונת הזכרון Basic initialization Allocate memory for the complete Manager object Initialize all fields 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  No explicit this() call  Call super() for Object()  No binding necessary  No this() call  No super() call (Object is the root)  No explicit field initialization for Object  No method body to call  Initialize explicit Employee fields: salary= ;  Execute body: name="Joe Smith"; date=null; Steps 3-4 skipped Execute body: No body in Employee(String) No explicit initializers for Manager Execute body: department="Sales" (String) Name (double) Salary (Date) Birth Date (String) Department public class Manager extends Employee { private String department; public Manager(String n, String d) { super(n); department = d; } public class Employee extends Object { private String name; private double salary = ; 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 super(), 4. explicit field init. 5. Execute body null 0.0 null “Joe Smith” “Sales”