460 likes | 667 Views
OO מושגי יסוד. איציק סיון מנכ”ל 2080 P. רשימת הנושאים. OO אתגרים Object Class Encapsulation Messages Inheritance Polymorphism. OOAD אתגרים. תחזוקתיות שפה קרובה לעולם המשתמשים Reuse שפה אחידה לכל בעלי המקצוע בתחום מותאם לשפות התכנות המודרניות.
E N D
OO מושגי יסוד איציק סיון מנכ”ל 2080P
רשימת הנושאים • OO אתגרים • Object • Class • Encapsulation • Messages • Inheritance • Polymorphism
OOAD אתגרים • תחזוקתיות • שפה קרובה לעולם המשתמשים • Reuse • שפה אחידה לכל בעלי המקצוע בתחום • מותאם לשפות התכנות המודרניות
רשימת הנושאים • OO אתגרים • Object • Class • Encapsulation • Messages • Inheritance • Polymorphism
אובייקט הגדרה • אובייקט הוא כל דבר רלוונטי מבחינה עסקית: חפץ,אדם,מקום,ארוע,מסך,דוח,מושג
דוגמא לאוביקט טכני X A Window _ Behavior MoveSize Minimize MaximizeClose
דוגמא לאובייקט • This watch is an object • It can • Display time • Set time • Sound alarm • Set alarm • Its weight is 50 gr. • It is water resistant • Its color is gold
דוגמא לאובייקט • זהו אובייקט תלמיד • הוא יכול • להרשם לקורס • לבטל קורס • לשלם שכר לימוד • שמו: יוסי קלינטון • מספר הטלפון:03-5555555 • מספר ת.ז :30941111
פעולות/התנהגות פעולה • כל מה שאוביקט יכול לעשות • כל מה שניתן לעשות עם האוביקט התנהגות • כל הפעולות של האוביקט
/State Attribute • לאוביקט יש מספר רצוי של תכונות • אוסף כל הערכים במצב נתון מכונים State
Object Identity • לכל אובייקט יש זיהוי חד ערכי • לזיהוי יש משמעות טכנית בלבד • שם נרדף לזיהוי Handle • הזיהוי אינו נגזר מערכי המצב
Created State 1 State 2 State 3.... Destroyed מחזור החיים של אוביקט
רשימת הנושאים • OO אתגרים • Object • Class • Encapsulation • Messages • Inheritance • Polymorphism
Class • מחלקה היא תבנית ממנה יוצרים אוביקטים
מחלקה ואובייקט • לכל האובייקטים במחלקה יש מאפיינים זהים ואותה התנהגות • בכל רגע נתון יש לכל אובייקט זהות חד ערכית ומצב ספציפי. • כל אובייקט הוא מופע Instance)) של מחלקה
סוגי אוביקטים • Transient - אובייקט זמני שאורך חייו מוגבל לאירוע/טרנזקציה • Persistent – אוביקטים שנשמרים ב DB
רשימת הנושאים • OO אתגרים • Object • Class • Encapsulation • Messages • Inheritance • Polymorphism
הכמסה - Encapsulation • הפרדה מוחלטת בין המימוש ובין המימשק, כלומר חוקי השימוש • הסביבה מכירה אך ורק את המימשק
IDFirstLastAddressSalary Class Manager Update Salary UpdateAddress Pay Pay Data -------- Processes UpdateSalary Update Address Hire Hire Promote Retrieve Retrieve Promote Fire Fire
IDFirstLastAddressSalary הכמסה של נתונים Attributes UpdateAddress Pay Data ------ Processes UpdateSalary Hire Promote Retrieve Fire
הכמסה של נתונים • הייצוג של הנתונים נסתר מעיני המשתמש • הגישה לנתונים מתבצעת אך ורק על ידי פעולות • כל מי שמעוניין לקבל שירותים מאובייקט מכיר אך ורק את הממשק שלו ((Signature
מה היה קורה בשנת 2000 אם כל התוכנות היו כתובות ב OOP
IDFirstLastAddressSalary הכמסה של תהליכים Methods UpdateAddress Pay Data ------ Processes UpdateSalary Hire Promote Retrieve Operation/ Service Fire
הגדרה חדשה לאוביקט אוביקט הוא הכמסה של נתונים ופעולות תוך כדי חיקוי קרוב ככל האפשר לעולם האמיתי
רשימת הנושאים • OO אתגרים • Object • Class • Encapsulation • Messages • Inheritance • Polymorphism
74.3 abc W÷u ¥ cfxpdq 3@42 % ‡ ְlp ÷ -1/÷ 74.3 abc W÷u 74.3 abc W÷u ¥ ¥ cfxpdq cfxpdq 3@42 3@42 % ‡ ְlp ÷ % ‡ ְlp ÷ -1/÷ -1/÷ שיתוף פעולה בין אוביקטים Messages A C B Request
Messages • בין האוביקטים קימים קשרי שרת לקוח Client Server • אוביקט מספק שרותים ללקוחותיו • הלקוח יכול להיות אוביקט אחר או משתמש • אוביקט יכול להיות שרת לאוביקטים מסוימים ומצד שני לקוח של אוביקטים אחרים
מסרים • אוביקט מבקש שרות מאוביקט אחר באמצעות מסרים • הלקוח אמור לדעת את התחביר של השרות המבקש • הלקוח אדיש לחלוטין לאלגוריתם הביצוע((Method הוא מעוניין רק בתוצאה • התוצאה מועברת מהשרת ללקוח בהתאם לפורמט ידוע מראש((Interface
כיצד פונים לאובייקט בשפת תכנות • דוגמא מחלקה= עובדים • אוביקטים :Klinton,Barak הוראות אופיניות: T1=Klinton.tel(); T2=Barak.tel(); S=Barak.salary();
רשימת הנושאים • OO אתגרים • Object • Class • Encapsulation • Messages • Inheritance • Polymorphism
דוגמא להורשה עובד מרצה מן המניין מרצה חוץ עוזר הוראה
Inheritance Generalization/Specialization Vehicle Superclass is a kind of Car SuperclassSubclass Boat Sports Car PassengerCar Truck SailingBoat Motorboat CargoShip (Subclass) Class
Phone Call Example Phone Call Superclass > > Long Distance Local Subclass
הורשה - הגדרה • המחלקה הנוכחית היא סוג מיוחד של מחלקת העל )(Superclass • לכל אובייקט של תת המחלקה יש את כל המאפיינים וההתנהגות של תת המחלקה ובנוסף גם את כל המאפיינים וההתנהגויות של מחלקת העל • תת מחלקה יכולה לשנות את הפונקציונליות של שירותי מחלקת העל,אבל לא את שם השרות ((Override • תת מחלקה יכולה גם לבצע שירכוב על מאפייני מחלקת העל
הורשה של מאפיינים Vehicle license # • למחלקה Truck : יש 3 מאפיינים • License # • Weight • Tonnage Car weight Truck tonnage
הורשה של פעולות Vehicle register()getTax() • למחלקה Truck יש 4 פעולות: • register() • getTax() • getWeight() • getTonnage() Car getWeight() Truck getTonnage()
Inheriting Relationships owner Vehicle Person 0..* 1 • A truck is related to an owner • A truck is related to drivers • A truck has a trailer Car Driver 0..* 0..* Truck Trailer
הורשה דוגמא Watch Date time SetDate(d) CalculatorWatch CalculatorState EnterCalcMode() InputNo(n)
Student Name Address Sex Date Reg H. Phone Create Change Name Change Sex Extension Student Special Student Degree Student Funding Source Cumulative Course Hours Reason W. Phone Program Year Date Started Update Cum Course Hours Edit Funding Source Edit Reason CalcGPA Graduate Undergraduate Student Graduate Student Full-Time Degree Student Part-Time Degree Student Credits Earned Thesis Advisor Thesis Topic Semesters Attended Semesters Completed Number of Courses Number of Course Hours Update Credits Return Credits Edit Advisor Return Advisor Semesters Attended Semesters Completed Generalization/Specializati
Company Division Department Committee Team Marketing Sales Admin Service Personnel A Class Hierarchy Organization Headquarters Admin Branch Admin
מחלקות מופשטות/מוחשיות • מחלקות אשר אינן מייצרות אובייקטים נקראות מחלקות מופשטות • מחלקות אשר מייצרות אובייקטים ( (instantiate מכונות מחלקות מוחשיות Concrete Classes
מחלקה מופשטת Worker Butcher Baker Programmer
כיצד יוצרים אוביקט • Class Programmer…… • Programmer p1, p2,itzik ; • p1=new programmer(); • ………
רשימת הנושאים • OO אתגרים • Object • Class • Encapsulation • Messages • Inheritance • Polymorphism
רבוי צורות Polymorphism • היכולת של אובייקטים ממחלקות שונות בעלות מחלקת על משותפת לספק שירותים שונים בתגובה למסר זהה
Geometrical Shapes Closed Shape SelectDisplay > > Circle Polygon Radius Size Number of Sides SelectDisplay SelectDisplay