PracticU

Implicit Casting

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › Implicit Casting
Implicit Casting
השיעור עוסק בהמרה מרומזת (implicit casting), המרה שהקומפיילר מבצע בעצמו בלי שנכתוב דבר מיוחד.
איך הקומפיילר מחליט
1. דוגמה עם מרחק הירח: מכניסים משתנה moon distance לתוך משתנה מסוג long שמחזיק את המרחק בין כדור הארץ לירח. הקומפיילר מאשר את ההכנסה בלי שגיאה.
2. מתי מאשרים: כשאין עיבוד מידע, כלומר כשהטיפוס היעד מחזיק את כל הערך. גודל הטיפוסים: byte בית אחד, short שני בתים, int ארבעה בתים, long שמונה בתים.
3. דוגמאות שנפסלות: long לתוך short נפסל, גם אם הערך עצמו נכנס, כי הקומפיילר מסתכל על הגודל של הטיפוס ולא על הערך. double לתוך float נפסל מאותה סיבה.
4. float ו-int: משתנה float יכול להחזיק int, ולכן ההמרה מאושרת. ההפך נפסל, כי מספר עשרוני לא נכנס לתוך int.
שימו לב
- הקומפיילר לא בודק את הערך בפועל. הוא בודק רק את הטיפוסים.
לסיכום, המרה מרומזת מותרת כשאין סכנה לאובדן מידע לפי גודל הטיפוס.
השיעור הבא בקורס: Explicit Casting

פרקי ההרצאה: Implicit Casting

  1. 00:00

    הכרת המרה מרומזת לפי דוגמה במצגת

  2. 00:44

    השמת מרחק הירח למשתנה long

  3. 01:23

    מתי הקומפיילר מאשר המרה מרומזת

  4. 02:02

    השמת int לשורט נחסמת על ידי הקומפיילר

  5. 02:41

    הקומפיילר בודק גודל הטיפוס ולא הערך

תמלול ההרצאה: Implicit Casting

הטקסט המלא של הדקות הראשונות בהרצאה «Implicit Casting» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אז הדבר הראשון שאנחנו הולכים לראות זאת המרה מרומזת implicit casting. בואו נראה איך זה מתבצע. ניקח את הדוגמה שראינו במצגת.

  2. 00:17

    יש לנו moon distance, יש לנו משתנה מסוג long distances in space. לתוך moon distance אנחנו רוצים להכניס את המרחק מכדור הארץ לירח במטרים נניח, 384,000 קילומטר.

  3. 00:44

    400 ואם אנחנו במטרים אז זה עוד שלושה אפסים ואנחנו רוצים לקחת את distances in space ולהכניס לתוכו את moon distance. בואו נראה שהקומפיילר מאשר את זה, שימו לב שאין כאן שום שגיאת קומפילציה.

  4. 01:07

    בואו נציג את שניהם, moon distance ו-distances in space. נריץ ונראה שהקומפיילר הסכים לבצע את שניהם בלי שום בעיה.

  5. 01:26

    אז מתי בעצם הקומפיילר מאשר לבצע המרה כזאת שנחשבת ל implicit casting? אז לרוב זה כמובן ברגע שיש לנו מידע נומרי, מספרים, שהקומפיילר יודע להמיר אותם ממספר א' למספר ב', רק כאשר אין לנו שום עיבוד מידע.

  6. 01:46

    בואו נראה, אם יש לנו לדוגמה בית b שווה 100 ויש לנו int i שווה b כמובן שאין פה שום בעיה של עיבוד מידע ולכן הקומפיילר מסכים אם אנחנו לוקחים long l ומכניסים את i שום בעיה אם אנחנו לוקחים short s ומכניסים לדוגמה את i לתוכו כבר אנחנו רואים שהקומפיילר לא מאשר אנחנו צריכים בשביל

  7. 02:18

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

  8. 02:31

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

  9. 02:47

    הוא אומר כזה דבר, אני לא מעניין אותי שבאמת יש פה 100 ו-100 יכול להיכנס בתוך שורט. אם יש פה איזשהו משתנה שהגודל שלו בבתים יותר גדול אני לא מאשר לעשות את זה.

  10. 03:03

    עכשיו זה די הגיוני מפני שכרגע זה 100 אבל אולי אנחנו נקלוט את זה איכשהו מהיוזר או מאיזשהו קובץ או משהו כזה. אז לכן הקומפיילר אומר תשמע אני לא מאשר לעשות את זה. עוד דוגמאות שיכולות להיות wd וניקח float f שווה d.

  11. 03:26

    כמובן שהקומפיילר אומר רגע,

לקורס המלא: קורס ג'אווה למתחילים אונליין

ההרצאה הקודמת: הסבר על Casting

ההרצאה הבאה: Explicit Casting

הרצאות קשורות מקורסים אחרים

  • Receive Implicit Intent

קורסים נוספים במסלול

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven