» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
עוד בנושא ממשקים
דף ראשי  מתחילים  עוד בנושא ממשקים גרסה להדפסה

עוד בנושא ממשקים (interfaces )

 

מבוא

 

סטודנטים בקורס הקדמה לתכנות Java אחראים לידיעת והבנת כל החומר בשעור זה
(חוץ מנושאים ספציפיים ב –
C++).

הנושאים הספציפיים ב – C++ מוצעים כחומר משלים לטובת אלו שמכירים כבר C++
ומבצעים הסבה ל – Java.

 

הקדמה

 

מושג הממשק עשוי להיות לעתים די קשה להבנה. בטרם נרד לפרטים הטכניים,
נציג סקירה כללית שתסייע לך להבנה 
.

 

מושג הממשק אינו קיים ב‑ ++C.

 

לשם מה בכלל נועד הממשק? ספרים רבים נותנים את התשובה לכך בצורת הצדקה.
אני אנסה לענות עליה מבחינה מעשית, ואשאיר את הצידוקים לאחרים.

 

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

 

ברמה הפשוטה ביותר, לממשק יש שם, והוא מצהיר על מתודה או מספר מתודות.
רק ההצהרות של המתודות מסופקות. היישום הממשי (גוף המתודה) אינו מסופק.

 

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

 

נניח שיש לנו הגדרת ממשק בשם X, אשר מצהיר על מתודות C,B,A.

נניח גם שקיימות שלוש מחלקות שונות Q,D,P.

כל מחלקה טוענת לשימוש בממשק X.

כל מחלקה מספקת גם הגדרה מלאה עבור מתודות C,B,A.

במידה וכל זה נכון, הרי שניתן יהיה לטפל (במידה מוגבלת) בקבוצת אובייקטים מטיפוסים Q,D,P כאילו שלושתם מטיפוס X.

באופן כזה, ניתן לטפל במספר אובייקטים ממחלקות שונות כאילו כולם מטיפוס משותף,
והטיפוס הזה מצוין בשם הממשק.

 

לדוגמה, משתנה הצבעה על אובייקט מאחת המחלקות Q,D,P, ניתן להשמה למשתנה הצבעה מטיפוס X. (בדרך כלל, משתנה הצבעה מטיפוס אחד אינו ניתן להשמה למשתנה הצבעה מטיפוס אחר, אלא במספר מקרים מיוחדים.)

בדומה לכך, ניתן ליצור אובייקט חדש של אחת המחלקות Q,D,P, וניתן להשׂים מייד את משתנה ההצבעה, המצביע על אותו אובייקט, למשתנה מטיפוס X מבלי שמשתנה מטיפוס D,P או Q היה קיים עד אז כלל.

 

ניתן להשׂים את ההצבעות על קבוצת אובייקטים מטיפוסים Q,D,P לאיברים הבודדים של מערך של משתנים מטיפוס X.

או שניתן להשתמש באיברי מערך מטיפוס X בהוראות היצירה של אובייקטים, בעת יצירתם בפעם הראשונה, ואיברים אלה יהיו משתני ההצבעה היחידים שיצביעו על אותם אובייקטים.

 

משתנה הצבעה מטיפוס X עשוי לשמש גם לצורך גישה לאחת המתודות C,B,A של האובייקט שעליו הוא מצביע.

חשוב לציין, שההתנהגות של מתודות C,B,A עשויה להיות שונה לחלוטין לגבי אובייקטים ממחלקה P או ממחלקה D, או ממחלקה Q.

השימוש הממשי של מתודה B,A או C יהיה על סמך המחלקה שבה המתודה הוגדרה.
רק הצהרת המתודה חייבת להיות זהה בכל המחלקות המשתמשות בממשק.

 

קודם השתמשנו במונח "באורח מוגבל". אם אחת, או יותר, מהמחלקות Q,D,P מגדירה מתודות מופע, שאינן מוצהרות בממשק X, הרי שלא ניתן יהיה להשתמש במשתנה הצבעה מטיפוס X על מנת לגשת לאותן מתודות מופע. מתודות אלה יהיו נגישות רק באמצעות משתנה הצבעה של אותה המחלקה, שבה הוגדרה גם המתודה.

משתני הצבעה מטיפוס X עשויים לשמש לצורך גישה רק למתודות שהוצהרו בממשק X
(או באחד מממשקי-העל שלו, כפי שנראה בהמשך).

 

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

הגדרת ממשק אינה כוללת בנאי, ועל כן לא ניתן להפעיל את האופרטור new על הטיפוס של הממשק.

 

אגב, אם מחלקות Q,D,P משתמשות בממשק X כפי שתיארנו עכשיו, מתודה במחלקה אחרת תוכל להפעיל את מתודות C,B,A על אובייקטים מטיפוסים Q,D,P מבלי לדעת כלל מהו הטיפוס האמיתי שלהן (מהי המחלקה, שמתוכה האובייקטים נוצרו). הדבר מושג על ידי המרת הטיפוסים של אותם אובייקטים לטיפוס X בעת הפעלת המתודה. תוכנית לדוגמה, הממחישה היבט חשוב זה של ממשקים, תוצג בהמשך השיעור

 05-01-04 / 20:24  נוצר ע"י רונית רייכמן  בתאריך 
 שאלות סיכום - הקודםהבא - תוכנית לדוגמא 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 2