מעבר לתוכן

הגדרת מתודות


yanivdan98

הודעות מומלצות

הי

 

משהו יכול לעזור לי בשאלה למטה? 

 

לא ברור לי למה הפיסקת modifies היא none?   מתבצע שם שינוי של הקלט, לא? אז למה שפיסקת ה- modifies היא none?

 

תודה 

 

 

http://img833.imageshack.us/img833/8538/25851009.png
 
Uploaded with http://imageshack.us'>ImageShack.us
קישור לתוכן
שיתוף באתרים אחרים

זו Java? אם כן, אז המחלקה String היא immutable, ופעולות שמשנות את המחרוזת אינן משנות את האובייקט עליו הופעלו אלא מחזירות אובייקט מחרוזת חדש.

קישור לתוכן
שיתוף באתרים אחרים

הי

 

זה אכן JAVA, אז לא כל כך ברור לי מה שאמרת:

 

בשורה:

 

str=substring(....)

 

אנחנו לא משנים את המחרוזת str? אם לא, אז מה בעצם קורה בשורה הזאת? מה קורה למידע שהיה ב- str מקודם?

 

תודה 

קישור לתוכן
שיתוף באתרים אחרים

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

קישור לתוכן
שיתוף באתרים אחרים

אז למעשה מתבצעת כאן העברה של str לפונקציה by-value ? כלומר זה לא המחרוזת המקורית בעצמה , אלא רק עותק שלה שמועבר לפונקציה?

 

ולכן למרות שמשנים את STR עדיין המחרוזת המקורית לא משתנה?

 

תודה

קישור לתוכן
שיתוף באתרים אחרים

אז למעשה מתבצעת כאן העברה של str לפונקציה by-value ? כלומר זה לא המחרוזת המקורית בעצמה , אלא רק עותק שלה שמועבר לפונקציה? לא. המחרוזת מועברת byRef

 

ולכן למרות שמשנים את STR עדיין המחרוזת המקורית לא משתנה? לא משנים את STR, מייצרים מחרוזת חדשה דומה לה...

 

תודה

אב"מ

 

This method has two variants and returns a new string that is a substring of this string. The substring begins with the character at the specified index and extends to the end of this string or upto endIndex - 1 if second argument is given.

קישור לתוכן
שיתוף באתרים אחרים

תסלחו לי חברה, אבל אני ממש מבולבל,

 

אני מבין שמחלקת String היא immutable, וכרגע לפי מה ש- "שבלול" אומר המחרוזת מועברת by-referance ולכן אני כן מעביר את המחרוזת עצמה...ולכן אם אני משנה את str (למעשה דורס את הסטרינג שהיה בו לפני) אזי אני למעשה דורס את המחרוזת שהיה בו לפני), לא?

 

איך זה יכול להיות שאני לא משנה את STR, ויוצר מחרוזת חדשה? אני לא רואה כאן שום new ושום יצירת מחרוזת חדשה...מה גם שלא ברור לי מה קורה למחרוזת הקודמת שהיתה ב- str...

 

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

 

תודה רבה

קישור לתוכן
שיתוף באתרים אחרים

אתה לא דורס את המחרוזת שהיתה בSTR

STR הוא פוינטר למחרוזת. אתה דורס את הפוינטר עם פוינטר למחרוזת חדשה.

 

ה-new הוא במימוש של substring

קישור לתוכן
שיתוף באתרים אחרים

הצטרפות לשיח

באפשרותך לשלוח הודעה כעת ולהירשם מאוחר יותר. אם ברשותך חשבון, ניתן להתחבר עכשיו לשליחת הודעה דרך חשבונך.
הערה: הודעתך דרושה לאישור הנהלה לפני הצגתה.

אורח
הוספת תגובה

×   הדבקה כטקסט עשיר.   הדבקה כטקסט רגיל במקום

  מאושרים אך ורק 75 סמייקונים.

×   הקישור שלך מוצמד אוטומטית.   הצגה כקישור במקום

×   תוכן הקודם שלכם שוחזר.   ניקוי עורך

×   You cannot paste images directly. Upload or insert images from URL.

טוען...
×
×
  • יצירת חדש...