שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

מנהלים: TA_nimrod, TA_Igor, TA_Adi, TA_nimrod, TA_Igor, TA_Adi

שלח תגובה
shaivak
הודעות: 23
הצטרף: 19:54 27/12/2009

שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי shaivak » 20:03 27/12/2009

בשיטות במחלקות, האם ניתן להניח שהאובייקט שקרא לשיטה אינו null?
כמו כן בבנאי העתקה של PolygonContainer, האם ניתן להניח שהאובייקט שנדרשנו להעתיק 'other' אינו null?
כי אם לא ניתן להניח אז נוצרות מספר בעיות...

Shahar
הודעות: 160
הצטרף: 16:49 29/10/2009

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי Shahar » 20:11 27/12/2009

1. אי אפשר לקרוא לשיטות בעזרת אובייקט null, כי זה אומר שהוא לא מצביע לשום מקום, בפרט, לא מצביע למקום עם השיטות של PolygonContainer.
2. מצטרף לשאלה

רפי_כהן_TA
הודעות: 168
הצטרף: 16:38 05/11/2008

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי רפי_כהן_TA » 10:11 28/12/2009

2. לא ניתן להניח שהוא לא Null. אם הוא כזה - תחזירו Null (בצורה כללית בעבודה).
צוות מבוא למדעי המחשב (מתרגל)

khitron
הודעות: 65
הצטרף: 11:05 22/10/2009

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי khitron » 11:37 28/12/2009

רפי_כהן_TA כתב:2. לא ניתן להניח שהוא לא Null. אם הוא כזה - תחזירו Null (בצורה כללית בעבודה).
איך בדיוק בנאי מעתיק אמור להחזיר null אם אין לו ערך החזרה?
התכוונת אולי "תחזירו ריק"?
תודה.

Shahar
הודעות: 160
הצטרף: 16:49 29/10/2009

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי Shahar » 11:41 28/12/2009

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

ilyal
הודעות: 63
הצטרף: 10:27 30/03/2009

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי ilyal » 11:51 28/12/2009

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

inbar
הודעות: 20
הצטרף: 02:15 03/11/2009

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי inbar » 11:53 28/12/2009

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

itayS
הודעות: 22
הצטרף: 14:34 12/11/2009

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי itayS » 11:57 28/12/2009

גם אני שובר את הראש לגביי איך להחזיר אותו null הרי ברגע שמי שקרא לבנאי כתב "new PolygonContainer" הוא מקבל מקום בזיכרון והוא כבר לא null..

Shahar
הודעות: 160
הצטרף: 16:49 29/10/2009

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי Shahar » 12:09 28/12/2009

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

ilyal
הודעות: 63
הצטרף: 10:27 30/03/2009

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי ilyal » 12:18 28/12/2009

נכון, האובייקט החדש שנוצר הוא אינו null כי בכל זאת יצרנו מקום בזיכרון עבורו.
מה שהוא כן זה אובייקט אם שדה - מערך מטיפוס polygon שהוא null כי אותו לא הגדרנו, אז כל פעולה
על האובייקט תיצור nullPointerException שזה מבחינת ה main "כאילו" שהאובייקט null.


רפי_כהן_TA
הודעות: 168
הצטרף: 16:38 05/11/2008

Re: שאלה בקשר לעבודה מספר 4, תשובת מתרגל בבקשה

שליחה על ידי רפי_כהן_TA » 16:48 29/12/2009

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

מי שכן מעניין אותו/ה מוזמן לשעות קבלה או באתר זה: http://www.allapplabs.com/java_design_p ... attern.htm
צוות מבוא למדעי המחשב (מתרגל)

שלח תגובה

חזור אל “- מבוא למדעי המחשב 2010”