PracticU

Explicit Casting

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › Explicit Casting
Explicit Casting
השיעור מראה איך מבצעים explicit casting, כלומר המרה שהמתכנת מבקש במפורש, ומה קורה כשהמידע לא נכנס לטיפוס החדש.
השלבים העיקריים
1. כתיבת הקאסטינג: כותבים את הטיפוס בסוגריים לפני המשתנה, למשל (int) salary. הקומפיילר מאשר את הביטוי.
2. עיגול כלפי מטה: ב-(int) הערך העשרוני נחתך. הערך 10,000.3 וגם 10,000.9 הופכים ל-10,000. העיגול תמיד כלפי מטה.
3. עיגול כלפי מעלה: משתמשים ב-Math.ceil ואחריו (int). הפונקציה מחזירה double, ולכן גם היא צריכה המרה.
4. הערך שנכנס: כשהערך נכנס לטיפוס שמכיל אותו, הוא לא משתנה. אפשר לראות זאת כשמציגים את הערך המקורי ואת הערך אחרי ההמרה.
5. איבוד מידע ב-short: משתנה short לא מכיל מעל כ-32,000. הכנסת 33,000 דרך (short) מוצגת כערך שלילי, מינוס 32,536.
6. גלגול ב-byte: byte מחזיק ממינוס 128 עד 127. הוספה מעל 127 מגלגלת את הערך למינוס 128, ו-129 מגלגל למינוס 127.
שימו לב
explicit casting הוא באחריות המתכנת. הקומפיילר מאשר את ההמרה, ואם מידע אבד, זו בעיה של הקוד.
מכאן ברור מתי לבצע casting, ומתי הוא יפגע בערך.
השיעור הבא בקורס: Conversion Functions

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

  1. 00:00

    הכרת עיגול משכורת למעלה ולמטה

  2. 00:41

    קלט משכורת מהמשתמש בקונסול

  3. 01:21

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

  4. 02:00

    תחביר ההמרה בסוגריים לפני המשתנה

  5. 02:43

    עיגול כלפי מטה בהמרה ל-int

  6. 04:10

    שימוש ב-Math ceil לעיגול למעלה

  7. 04:53

    פונקציה שמחזירה double והמרתה

  8. 05:28

    בדיקת עיגול עם ערכים 1003 ו-1009

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

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

  1. 00:02

    הסוג הבא שראינו היה Explicit Casting. בואו נראה איך זה מתבצע. ניקח Double Salary, ניקח איזשהו אינטג'ר בשביל לבצע המרה של ה-Salary או עיגול של ה-Salary, בואו נגיד גם למעלה וגם למטה.

  2. 00:24

    נתחיל עם Lower Rounded Salary וניקח עוד אחד של Upper Rounded Salary. נניח שאנחנו רוצים לעגל את המשכורת גם למעלה וגם למטה נראה איך זה מתבצע. נכניס לתוך salary ערך מהuser מהמשתמש אז יש לנו פה scanner console שווה new scanner system.in נסגור פה בסוף את ה-console ואז המערכת תגדיר לנו פה למעלה את ה-import שלו

  3. 01:07

    ונגדיר דרך הקונסול נקודה next double. נאמר ליוזר please enter your salary והנה קלטנו מהיוזר את המשכורת שלו. עכשיו אנחנו רוצים לבוא ל-lower rounded salary ולהכניס את ה-salary וגם ל-upper rounded salary להכניס את ה-salary.

  4. 01:34

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

  5. 01:47

    דבר שני, W בכלל יכול להחזיק נקודה עשרונית, ואינטג'ר לא יכול להחזיק מידע עם נקודה עשרונית. אז מה שאנחנו צריכים לבצע זה פשוט פעולה שנקראת Explicit Casting, וזה פשוט לכתוב בסוגריים לפני המשתנה את הסוג אליו אנחנו רוצים לבצע את ההמרה, Int.

  6. 02:10

    שימו לב שאוטומטית זה מאושר לנו אם נעשה את אותו הדבר גם כאן אנחנו נקבל את שניהם מבחינת הקומפיילר כקוד חוקי בואו נציג את שניהם נציג גם את הסלארי נציג גם את הלואוור ראונדד ונציג גם את האפר ראונדד סלארי נריץ נכניס איזושהי משכורת על ידי המשתמש בוא נניח 10,000.3 ומה שקיבלנו זה המשכורת המקורית

  7. 02:55

    היא 10,000.3 אבל הצלחנו להכניס אותה לתוך אינטג'ר ובשני המקרים היא עוגלה למטה. שוב פעם בואו נראה רגע זה הסלארי זה הלואוור ראונדד וזה האפר ראונדד נריץ 10,000.3 הנה הסלארי המקורית כאשר אנחנו מעגלים את זה על ידי אינט או מבצעים ליתר דיוק קאסטינג, explicit casting על ידי אינט, אז אנחנו רואים שהוא אוטומטית עיגל לנו את

  8. 03:42

    זה למטה. אולי הוא עיגל למטה בגלל שזה היה 0.3 ואם זה 0.9 אז הוא יעגל למעלה? בואו נראה. נכניס 10,000.9, אולי הוא יעגל את זה ל-10,001?

  9. 04:01

    לא, הוא עיגל תמיד למטה. זאת אומרת ברגע שאנחנו משתמשים עם explicit casting בצורה כזאת ושמים int או byte או long או short תמיד העיגול מתבצע כלפי מטה. זאת אומרת במקרה הזה זה מתאים לנו אבל במקרה הזה זה לא יתאים לנו.

  10. 04:21

    אם נזכר נראה שבאחד הסרטונים הייתה לנו פונקציה שנקראת math.ceiling או math.floor ואם אנחנו ניקח את math.floor, הנה היא פה, אז אנחנו יכולים לקחת את ה-salary, האמת זה לא math.floor אני רוצה, אני רוצה math.sealing, לקחת את ה-salary, לעגל אותה כלפי מעלה, ואז להשתמש ב-casting של int. אם אנחנו לא נשתמש ב-casting של int,

  11. 04:59

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

  12. 05:14

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

  13. 05:31

    בואו נריץ נכניס 1003 נקבל הנה עיגול כלפי מטה על ידי אינט רגיל הנה עיגול כלפי מעלה על ידי סילינג ואז אינט והנה המחוזת המקורית המשכורת המקורית בואו נשים פה 1009 ונראה שוב פעם משכורת

ההרצאה הקודמת: Implicit Casting

ההרצאה הבאה: Conversion Functions

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

  • Page Object Design עם Explicit Wait
  • הסבר על Explicit Loading - טעינת מידע נלווה ספציפי מראש

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

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