Object Oriented Programming

Slides:



Advertisements
Similar presentations
פסיפס יפואי Jaffa Mosaic Jaffa Street, symbol of Jerusalem center. Recently, some concrete cubes covered with colorful mosaics were added to the sidewalks.
Advertisements

Object-Oriented programming in C++ Classes as units of encapsulation Information Hiding Inheritance polymorphism and dynamic dispatching Storage management.
Object Oriented 33 MCSD DORON AMIR
ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
C++ Classes & Data Abstraction
1 תוכנה 1 תרגול 14 – סיכום. 2 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public.
Stacks and Queues & Inheritance 2014 Spring CS32 Discussion Jungseock Joo.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
רשימה מקושרת Linked Lists. דוגמא STRING איך עושים Dim x as String בלי לדעת מראש את הגודל !
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
A. Frank File Organization Indexed-Sequential File Introduction Thanks to Tamar Barnes.
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 4 LSP.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 22 - C++ Templates Outline 22.1Introduction 22.2Class Templates 22.3Class Templates and Non-type.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 11 - Templates Outline 11.1 Introduction 11.2 Function Templates 11.3 Overloading Function Templates.
Stacks  Standard operations: IsEmpty … return true iff stack is empty Top … return top element of stack Push … add an element to the top of the stack.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 7 ISP דוגמא נוספת.
1 מבוא למדעי המחשב רקורסיה. 2 רקורסיה היא שיטה לפתרון בעיות המבוססת על העיקרון העומד ביסוד אינדוקציה מתמטית: אם ידועה הדרך לפתור בעיה עבור המקרים הבסיסיים.
אתחול עצמים. אתחולים ובנאים יצירת מופע חדש של עצם כוללת: הקצאת זכרון, אתחול, הפעלת בנאים והשמה לשדות במסגרת ריצת הבנאי נקראים גם הבנאי/ם של מחלקת הבסיס.
תוכנה 1 תבנית העיצוב Observer 1 שחר מעוז בית הספר למדעי המחשב אוניברסיטת תל אביב.
1 CSC241: Object Oriented Programming Lecture No 13.
תוכנה 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.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
C++ Class Members Class Definition – class Name – { – public: » constructor(s) » destructor » function members » data members – protected: » function members.
Object Oriented Programming in C++ Chapter 6 Inheritance.
Copyright 2006 Oxford Consulting, Ltd1 February Polymorphism Polymorphism Polymorphism is a major strength of an object centered paradigm Same.
Copyright 2008 Oxford Consulting, Ltd 1 October C++ Classes Enhanced Structures C  struct only permitted to have data members  Functions to.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 12 - Templates Outline 12.1Introduction 12.2Function Templates 12.3Overloading Template Functions.
TEMPLATESTEMPLATES BCAS,Bapatla B.mohini devi. Templates Outline 22.1Introduction 22.2Class Templates 22.3Class Templates and Non-type Parameters 22.4Templates.
1 Classes classes and objects - from object-oriented programming point of view class declaration class class_name{ data members … methods (member functions)
 2000 Deitel & Associates, Inc. All rights reserved. 12.1Introduction Templates - easily create a large range of related functions or classes –function.
Combo Box שלושה סוגים של Combo Box: Style 0 (default) - drop-down combo box המשתמש יכול להוסיף אפשרויות לרשימה או ללחוץ על החץ לבחירה מרשימת האפשרויות.
מחרוזות – הטיפוס String
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 5 תרשימי מצבים Statecharts למחלקות תגובתיות Reactive Classes הקדמה ודוגמא.
האוניברסיטה העברית בירושלים
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
C programming Lecture 8 – pointers
Chapter 22 - C++ Templates
Object Oriented Programming
CSC241: Object Oriented Programming
Operators Overloading
Object Oriented Programming
Object Oriented Programming
מחלקות classes.
XML מבוא כללי MCSD Doron Amir
תוכנה 1 תרגול 13 – סיכום.
תוכנה 1 תרגול 13 – סיכום.
תכנות מכוון עצמים בשפת JAVA
חדוה מילוא, ספריה מכון ויצמן למדע
ניתוח מערכות מידע תכנות ב C#
תכנות מכוון עצמים ושפת JAVA
סוגי משתנים קרן כליף.
תזכורת על מה דיברנו שיעור שעבר? בנינו אתר אינטרנט עם כותרות
תרגול 10 המשך תכנות מונחה עצמים.
Chapter 11 - Templates Outline Introduction Function Templates Overloading Function Templates Class Templates Class.
תוכנה 1 תרגול 13 – סיכום.
פולימורפיזם מתקדם ממשקים בC# עריכה ועיצוב: קרן הרדי
Polymorphism Polymorphism
Chapter 11 - Templates Outline Introduction Function Templates Overloading Function Templates Class Templates Class.
template< class T > class Stack { public:
Object-Oriented Programming (Part 2)
Chapter 22 - C++ Templates
Chapter 22 - C++ Templates
Chapter 11 - Templates Outline Introduction Function Templates Overloading Function Templates Class Templates Class.
Presentation transcript:

Object Oriented Programming ירושה Inheritance based on: faculty.washington.edu/jkp/CPP/Intro/lectures/inherit.ppt http://msdn.microsoft.com/en-us/library/a48h1tew(v=vs.100).aspx נכתב ע"י יעל ארז. © כל הזכויות שמורות.

ירושה - מוטיבציה ירושה היא הרחבה של המחלקה. הירושה מאפשרת: שימוש חוזר בקוד קיבוץ קטעי קוד זהים גמישות כלומר הקוד יותר נוח לשימוש, שינוי ותחזוקה. Copyright 2006 Oxford Consulting, Ltd 1 February 2006

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה מבוא ירושה היא מנגנון המאפשר לבנות מחלקה מתוך מחלקה קיימת. מגדירים מחלקה חדשה להיות: הכללה צמצום של מחלקה קיימת. תלוי בנקודת המבט שלנו... נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה מבוא הירושה שאנחנו מכירים: ירושה מהורים, ירושה ביולוגית. ירושה ב C++: Document Online document Printed document Help file Book Online tutorial Magazine נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה A printed document is a kind of document A book is a kind of printed document A help file is a kind of online document … מבוא Document Online document Printed document Help file Book Online tutorial Magazine נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה מבוא חלוקה לתת קבוצות נקראת: Subclass – תת מחלקה Derived Class – מחלקה יורשת Children – צאצא, ילד הצאצא יורש: מאפיינים ותכונות יכולות הצאצא יכול להרחיב או לשנות יכולות של האבא http://naturalsciences.sdsu.edu/ta/classes/lab2.4/trait.jpg נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה מבוא Class Instance Document my document צמצום הכללה Printed document My printed document Book Magazine BVD warAndPeace נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה Single inheritance Base Class Document אבא Derived Class Printed document ילד נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה Single Inheritance Indirect Base Class Document Direct Base Class Printed document אבא Derived Class Book ילד נכתב ע"י יעל ארז. © כל הזכויות שמורות.

ירושה class PrintedDocument {}; // Book is derived from PrintedDocument. class Book : public PrintedDocument {}; // PaperbackBook is derived from Book. class PaperbackBook : public Book {}; Copyright 2006 Oxford Consulting, Ltd 1 February 2006

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה Multiple Inheritance animal mamal winged animal bat נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה Multiple Inheritance ניתן גם לרשת ללא אבא משותף: person employee teacher http://upload.wikimedia.org/wikipedia/en/1/1f/Spider-Man-Comics-Weekly01.jpg נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה אפשרויות בירושה מותר לרשת מכל מחלקה. הילד יורש ממחלקת האב את ה D.M.s וה F.M.s שלו. ירושה מאפשרת להוסיף D.M.s על אלו הקיימים במחלקת האב.   ירושה מאפשרת להוסיף F.M.s על אלו הקיימות במחלקת האב. ירושה מאפשרת ל"הסתיר", override, F.M.s הקיימות במחלקת האב. נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה אפשרויות בירושה ניתן לגשת לשדות של האב ע"י האופרטור :: (scope) דוגמא document.cpp נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה אפשרויות בירושה למתודות ב derived אין זכויות גישה למה שהוגדר כ private ב base! class base{ private:   ….class base definition };   class derived : public base{ …class derived definition; נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה Protected D.M.s and F.M.s class base{ protected:   ….class base definition };   class derived : public base{ …class derived definition; אם במקום להגדיר את השדות ב base כ private נשתמש במילת המפתח protected נאפשר לפונקציות של derived גישה ישירה אליהם. protected עדיין משאירה אותם מוגנים (private) בפני העולם החיצוני. נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. ירושה class Stack { protected: int size ; // max Number of elements on Stack int top ; // index of last entered element int* s ; public: Stack(int = 10) ; ~Stack() { delete [] s ; } int push(int); int pop(int&) ; // pop an element off the stack int isEmpty()const { return top == -1 ; } int isFull() const { return top == size - 1 ; } } ; דוגמא stack_1.cpp נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. סוגי ירושה class base{ ….class base definition }; class derived1 : public base{ …class derived1 definition; class derived2 : protected base{ …class derived2 definition; class derived3 : private base{ …class derived3 definition; ירושת public ירושת protected ירושת private נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. סוגי ירושה ירושת public class A { public: int x; protected: int y; private: int z; }; class B : public A { // x is public // y is protected // z is not accessible from B }; נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. סוגי ירושה ירושת protected class A { public: int x; protected: int y; private: int z; }; class C : protected A { // x is protected // y is protected // z is not accessible from B }; נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. סוגי ירושה ירושת private class A { public: int x; protected: int y; private: int z; }; class D : private A { // x is private // y is private // z is not accessible from B }; נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. אתחול ושחרור ילד Constructors and Destructors הילד אינו יורש את ה constructors ואת ה destructors מהאב. האתחול מתבצע ע"י רצף של constructors: ה constructor של האב מאתחל את השדות של האב. ה constructor של הילד משלים את האיתחול. Base :: Base Base Part Derived :: Derived Derived Part נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. אתחול ושחרור ילד Constructors and Destructors הילד מקבל את כל המידע הדרוש לאתחול (שלו ושל האב) הילד קורא ל constructor של האב ברשימת אתחול אם אין קריאה ל constructor ייקרא ה Default constructor Derived ( derived & base args ) : Base ( base args ) { // Derived constructor body } נכתב ע"י יעל ארז. © כל הזכויות שמורות.

נכתב ע"י יעל ארז. © כל הזכויות שמורות. אתחול ושחרור ילד Constructors and Destructors כאשר הילד נמחק, נקרא רצף של destructors בסדר הפוך קודם מתבצע ה destructor של הילד ואח"כ של האב אין קריאה מפורשת ל destructor של האב Base :: ~Base Base Part Derived :: ~Derived Derived Part נכתב ע"י יעל ארז. © כל הזכויות שמורות.