איתי ויונתן מתכוננים למבחן בקורס תכנות מונחה עצמים. כדי להיות ערניים הם מדי פעם מכינים לעצמם קפה. איתי חושש שהם שותים יותר מדי כוסות קפה. הוא הציע ליונתן לבנות מחלקה CoffeeCup, ובכל פעם שהם יכינו לעצמם כוס קפה, הם ייצרו אובייקט של מחלקה זו.
איתי רוצה לדעת בכל רגע נתון כמה כוסות קפה הם שתו, כלומר, כמה אובייקטים מסוג CoffeeCup הם יצרו.
עזרו לאיתי לבחור את הדרך הנכונה ביותר לעיצוב המחלקה CoffeeCup.
א.
ב.
ג.
ד.
אוניברסיטת בר-אילןמועד ב · 2025 · סמסטר ב
מחלקותאובייקטיםקונסטרוקטורהסתרת מידעstaticמעקב אחר קוד
בפרויקט Java טיפוסי שבו נעשה שימוש ב-JUnit לצורך בדיקות, חשוב למקם את מחלקת הבדיקה (java.MyClassTest) של מחלקה מסוימת (java.MyClass) בתיקיית test בתוך חבילה (package) עם אותו השם בדיוק של החבילה ש-MyClass נמצא בתוכה (כמוצג בתמונה).
מדוע זה חשוב?
סמנו את כל הטענות הנכונות.
א. דרך זו אפשר גישה מהטסט לכל המתודות של MyClass
ב. בפרויקט ענק כאשר טסט ניכשל, ניתן ככה בקלות לאתר אותו
ג. אם יש צורך לבדוק מתודה שהיא private, ניתן לאפשר גישה למתודה עם מינימום פגיעה ב-Encapsulation (ע"י הורדת המילה private מהחתימה של המתודה הנבדקת).
ד. אף אחת מהטענות הנ"ל אינה נכונה
נמקו בקצרה את תשובתכםן.
אוניברסיטת בר-אילןמועד ג · 2025 · סמסטר ב
מחלקותהסתרת מידע
משה בנה פרויקט הבא
הניחו שהקוד הנתון תקין, כלומר מתקמפל ורץ ללא שגיאות.
לטענתו של משה, הפרויקט נכון. יונתן, חבר של משה, טוען שהקוד לא הגיוני, כלומר, מכיל טעות לוגית. מי מהסטודנטים צודק?
א. משה
ב. יונתן
ג. לא ניתן להכריע
נמקו בקצרה את תשובתכםן.
אוניברסיטת בר-אילןמועד ג · 2025 · סמסטר ב
מחלקותאובייקטיםהסתרת מידעקונסטרוקטורמעקב אחר קוד
יסמין רוצה לבנות פרויקט בו מוגדרת מחלקה של Point. יסמין רוצה שכל האובייקטים מסוג Point ייווצרו ברבע החיובי של מערכת הצירים (כלומר, עם ערכים x ו-y אי שליליים). עזרו ליסמין לבחור את העיצוב הנכון ביותר עבור הפרויקט שלה.
א.
ב.
ג.
ד.
ה. אף אחד מהמימושים הנ"ל אינו נכון
אוניברסיטת בר-אילןמועד ב · 2025 · סמסטר ב
קונסטרוקטורחריגותהסתרת מידעמחלקותאובייקטיםstatic
מרינה הציעה לא להשתמש בסוגי נראות private ו-protected בתכנות ב-Java, כלומר, להשתמש אך ורק ב-public. מה ההשלכות של ההצעה הזו?
סמנו את כל הטענות הנכונות.
א. לא נוכל להשתמש ב-interfaces
ב. לא נוכל להשתמש ב-pattern design singleton
ג. לא נוכל להשתמש ב-pattern design factory
ד. אף אחת מהטענות הנ"ל אינה נכונה
אוניברסיטת בר-אילןמועד ב · 2025 · סמסטר ב
הסתרת מידעקונסטרוקטורממשקיםאובייקטיםמחלקותתבניות עיצוב
נתונה הגדרה של מחלקה A
הציעו את כל ההשלמות האפשריות עבור החלקים המוסתרים בהגדרה של A כך שהקוד לא יתקמפל, או הסבירו למה השלמה כזו לא קיימת. עבור כל אפשרות הסבירו מה הסיבה לשגיאת קמפול.
נמקו בקצרה את תשובתכםן.
אוניברסיטת בר-אילןמועד ג · 2025 · סמסטר ב
מחלקות מופשטותOverridingstaticהסתרת מידע
נתון פרויקט המגדיר מחלקות הבאות.
הפרויקט נתון בשלמותו.
הניחו שהקוד הנתון תקין, כלומר מתקמפל ורץ ללא שגיאות.
איתי טוען שהפרויקט הינו נכון.
יונתן טוען שבפרויקט יש סתירה לוגית.
מי מהסטודנטים צודק?
איתי | יונתן | לא ניתן להכריע
נמקו בקצרה את תשובתכם.
אוניברסיטת בר-אילןמועד א · 2025 · סמסטר א
מחלקותאובייקטיםקונסטרוקטורהסתרת מידעמעקב אחר קוד
נתונה מחלקה הבאה
סמנו את כל המימושים התקינים עבור f, כלומר, כאילו שמתקמפלים ורצים ללא שגיאות.
א.
ב.
ג.
ד.
נמקו בקצרה את תשובתכם.
אוניברסיטת בר-אילןמועד א · 2025 · סמסטר א
מחלקותירושההסתרת מידעstaticמעקב אחר קוד
נתונות שתי מחלקות הבאות
בחרו בטענה הנכונה ביותר.
א. רק המחלקה A הינה singleton, והמחלקה B איננה
ב. רק המחלקה B הינה singleton, והמחלקה A איננה
ג. שתי המחלקות הינן singletons
ד. שתי המחלקות אינן singletons
נמקו בקצרה את תשובתכם.
אוניברסיטת בר-אילןמועד א · 2025 · סמסטר א
מחלקותאובייקטיםקונסטרוקטורstaticהסתרת מידעsingleton
משה בנה מחלקה A, ולאחר מכן נדרש להוסיף מחלקה B.
איזה מהתרחישים הבאים מצביע בצורה החזקה ביותר על כך שעדיף להשתמש בהאצלה (delegation) (כלומר, להגדיר אובייקט מסוג A בתוך המחלקה B) (ולא בהורשה (inheritance)) (כלומר, להגדיר שמחלקה B מרחיבה את המחלקה A)?)
א. קיים קשר ברור של "is-a" בין שתי מחלקות
ב. B צריכה לעשות שימוש רק בחלק מהמתודות של A
ג. נדרש שימוש בפולימורפיזם בין שתי המחלקות, למשל, יש צורך להחזיק אובייקטים של שתי המחלקות במערך פולימורפי
ד. אף אחד מהתרחישים הנ״ל אינו משכנע שיש להשתמש בהאצלה
נמקו בקצרה את תשובתכם.
אוניברסיטת בר-אילןמועד א · 2025 · סמסטר א
ירושהפולימורפיזםמחלקותהסתרת מידע