ABA


"אפשר לקבל הסבר על Casting ובהקשר של פולימורפיזם"
גירסת הדפסה        
קבוצות דיון לימודים, מדע ותרבות נושא #10228 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10228
green eyes

   16:53   14.05.10   
אל הפורום  
  אפשר לקבל הסבר על Casting ובהקשר של פולימורפיזם  
 
   אני לא כל כך מבין מדוע צריך להמיר , ואיך עושים את זה נכון :\
ואשמח להסבר על הפעולות as ו is


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אשמח גם להסבר והרחבה על המרה מפורשת כלפי מטה Moshem 17.05.10 15:27 1
  עדיף שתמקד את השאלה... ldan192  17.05.10 22:49 2
     אוקיי אני אנסה green eyes 18.05.10 01:25 3
         אוקי... Yariv-H 18.05.10 02:21 4
             אוקיי אחלה, זה בדיוק מה שאמרתי green eyes 18.05.10 13:23 5
             עכשיו עוד שאלה אליך בנושא אחר , green eyes 18.05.10 13:25 6
                 טוב. Yariv-H 18.05.10 14:41 7
                     לא בדיוק Moshem 19.05.10 03:34 8
                         אתה טועה... לפחות ב JAVA אתה טועה.. xzoooooom 19.05.10 09:09 9
                             =] Yariv-H 19.05.10 10:05 10
                                 טוב ש-Java זו לא השפה הכי פרוצה שיש בשוק גם ככה... ldan192  19.05.10 18:04 11
                             מכתב Moshem 25.05.10 00:13 12

       
Moshem
חבר מתאריך 25.10.07
24447 הודעות
   15:27   17.05.10   
אל הפורום  
  1. אשמח גם להסבר והרחבה על המרה מפורשת כלפי מטה  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   22:49   17.05.10   
אל הפורום  
  2. עדיף שתמקד את השאלה...  
בתגובה להודעה מספר 0
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
green eyes

   01:25   18.05.10   
אל הפורום  
  3. אוקיי אני אנסה  
בתגובה להודעה מספר 2
 
   אם יש לי מחלקה שיורשת ממחלקה אחרת
ויש לי ייחוס
כמו
BaseShape b = new Circle()l
למחלקה Circle יש מתודות שאין במחלקת הבסיס
בשביל להשתמש במתודות של המחלק CIRCLE
אני חייב לעשות CASTING לעצם b ?
(circle)b.methodName
נכון?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק
   02:21   18.05.10   
אל הפורום  
  4. אוקי...  
בתגובה להודעה מספר 3
 
   ערכתי לאחרונה בתאריך 18.05.10 בשעה 02:26 בברכה, Yariv-H
 
במידה ואני זוכר נכון.
כרגע יש לך מופע בזכרון בשם B שהוא מאתחל על ידי סירקל
אבל המצביע שלו הוא BASE

במידה ויש לך את אותו השם של המתודה ב BASE וגם ב CIRCLE אין לך שום בעייה להשתמש במתודה כי זה ילך למתודה שנמצאת הכי נמוך בעץ של ההיררכיה.

במידה ויש לך מתודה ב סירקל שלא קיימת ב BASE
אתה חייב לעשות CASTING

עכשיו המטרה של הקאסטיג היא להמנע מ שגיאת קומפילציה.
נניח ש מתודה XXX קיימת ב סירקל ולא קיימת ב BASE
ורשמת


b xxx();

הקומפיילר במהלך הקומפילציה ילך למחלקה שמצביעה לך על B שבמקרה הזה היא BASE ויחפש את המתודה XXX
כמובן שהוא לא ימצא אותה ואז תיהיה שגיאה...

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

זה אם אני זוכר נכון..



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
green eyes

   13:23   18.05.10   
אל הפורום  
  5. אוקיי אחלה, זה בדיוק מה שאמרתי  
בתגובה להודעה מספר 4
 
   יופי של הסבר גבר
תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
green eyes

   13:25   18.05.10   
אל הפורום  
  6. עכשיו עוד שאלה אליך בנושא אחר ,  
בתגובה להודעה מספר 4
 
   אם אתה יודע כמובן
אם יש לי משתנה שהוא סטטי במחלקה מסויימת
אז מה ההבדל אם הוא מוגדר בתור משתנה סטטי או לא ?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק
   14:41   18.05.10   
אל הפורום  
  7. טוב.  
בתגובה להודעה מספר 6
 
   בעקרון לפי מה שאני זוכר , ברגע שיש לך משתנה סטטי שמוגדר איפה שהוא.
הוא נגיש מכול מחלקה ומחלקה .
ז"א שבמידה ותרשום קוד תעביר אותו למישהוא הוא עדין יוכל להשתמש במתודות / במשתנים האלו.

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

עוד משהוא חשוב

מתודות סטטיות יכולות לעבוד אך ורק עם משתנים סטטים. ולא עם משתנים רגילים.

מתודות רגילות גם יכולות לעבוד עם משתנים רגילים וגם עם סטטים.

ככה שאתה יוצר מתודה סטטית זה יכול ליצור לך בעיות עם משתנים מסויימים..

(או שזה ההפך.. אבל אחד מהם בטוח נכון =])

מקווה שעזרתי



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Moshem
חבר מתאריך 25.10.07
24447 הודעות
   03:34   19.05.10   
אל הפורום  
  8. לא בדיוק  
בתגובה להודעה מספר 7
 
   משתנה סטטי זה משתנה שאפשר לגשת אליו רק מרמת המחלקה והשימוש בו הוא רק מעצם שמאותה מחלקה שבה הוא נמצא.
הוא לא נגיש מכל מחלקה. בגלל זה קוראים לו סטטי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
xzoooooom
חבר מתאריך 19.3.02
20316 הודעות
   09:09   19.05.10   
אל הפורום  
  9. אתה טועה... לפחות ב JAVA אתה טועה..  
בתגובה להודעה מספר 8
 
אם אתה בונה פונקציה סטטית, ואתה רוצה להשתמש בה במחלקה אחרת אז אתה ועוד איך יכול לגשת אליה, ויותר מזה הדבר הזה חוסך לך את הצורך לבנות אוביקט.

כלומר אם יש לך מחלקה בשם WORLD CLOCK ויש לך בפנים פונקציות סטטיות שמדפיסות את השעה בכל מקום בעולם, במידה ואתה נמצא ב CLASS MAIN שבנית, אז אתה לא צריך ליצור אוביקט מסוג WORLD CLOCK אתה יכול לקרוא לפונקציה הזאת בדרך סטטית ככה:
WorldClock.IsraelTime

כאשר WorldClock זה ה Class שבו נמצאת הפונקציה הסטטית ו IsraelTime זו הפונקציה הסטטית שמדפיסה תזמן בישראל.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק
   10:05   19.05.10   
אל הפורום  
  10. =]  
בתגובה להודעה מספר 9
 
   נכון.
אבל שוב במידה והתוכנית שלך היא באמת מדפיסה שעות של העולם אין בעייה.
אבל אני גם חשבתי ככה שזה יותר נוח ואז התחילו להסביר לנו לגבי גניבת קודים וכול זה.
ולא כוך כך שווה לתכנת עם מתודות סטטיות ברמת האבטחה על הקוד שלך.
ואמרו לנו שיש משהוא הרבה יותר עמוק אבל לא ניכנסו איתנו לזה..

=]



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   18:04   19.05.10   
אל הפורום  
  11. טוב ש-Java זו לא השפה הכי פרוצה שיש בשוק גם ככה...  
בתגובה להודעה מספר 10
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Moshem
חבר מתאריך 25.10.07
24447 הודעות
   00:13   25.05.10   
אל הפורום  
  12. מכתב  
בתגובה להודעה מספר 9
 
   אז מה שאמרתי הפוך, שדרך אובייקט אי אפשר לגשת לפונקצייה או משתנה סטטי אלא רק דרך הפנייה לשם של המחלקה.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net