PracticU

Conversion Functions

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › Conversion Functions
Conversion Functions
בשיעור הזה נראה דרך אחרת להמיר ערכים: פונקציות המרה (conversion functions). הן רצות בזמן הריצה ולא בזמן הקומפילציה, ולכן הן שונות מקאסטינג.
ההבדל מקאסטינג
1. קאסטינג מול פונקציית המרה: קאסטינג משתיק את הקומפיילר ומכריח המרה. פונקציית המרה נקראת בזמן הריצה, מקבלת את הערך ומחזירה ערך חדש מומר.
2. מספר למחרוזת: משכורת מסוג double צריכה להיכנס להודעת SMS מסוג String. הקאסטינג נפסל, אבל לטיפוס double יש פונקציה שמחזירה מחרוזת, והיא עובדת גם על מספר שלם.
3. מחרוזת למספר עשרוני: הודעה שמגיעה ממקום מרוחק כוללת את המשכורת כמחרוזת. הקומפיילר לא ממיר אותה ל-double, ולכן משתמשים בפונקציה Double.parseDouble. אחרי ההמרה אפשר לחשב עליה, למשל מס של 15%.
שימו לב
- ההמרה מתבצעת בזמן הריצה, ולכן קלט לא חוקי גורם לקריסה. מחרוזת כמו ABC מפילה את התוכנית עם NumberFormatException.
- טיפול בחריגות כזה יילמד בקורס נפרד, אחרי Object Oriented.
לסיכום, המרה ממחרוזת למספר דורשת פונקציה מתאימה, ופונקציה כזאת עלולה לקרוס אם הקלט לא תקין.
השיעור הבא בקורס: Numeric Suffixes

פרקי ההרצאה: Conversion Functions

  1. 00:00

    הבדל בין Casting לפונקציית המרה

  2. 00:53

    המרת משכורת להודעת SMS

  3. 01:50

    ניסיון Explicit Casting והמגבלה של הקומפיילר

  4. 02:32

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

  5. 03:41

    סכנת קריסה בזמן הריצה

  6. 04:19

    המרת הודעת SMS נכנסת למספר דאבל

תמלול ההרצאה: Conversion Functions

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

  1. 00:02

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

  2. 00:12

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

  3. 00:34

    ויכולים להמשיך לתכנת וכמובן שהתוכנית יכולה לרוץ. conversion function אומרת כאשר אתם רצים שלחו את הערך לאיזושהי פונקציית מערכת והיא תבצע את ההמרה ותחזיר את הערך המומר.

  4. 00:50

    זה המטרה ב-conversion function. אז בואו נראה דוגמה. יש לנו כאן איזשהו salary שאנחנו רוצים לקבל מהמשתמש, console next double בואו נגיד לuser please enter your salary והדוגמה שראינו הייתה כזאת שרצינו סטרינג sms message רצינו לסלוח את הסלרי בהודעת sms ומבחינתנו הודעת sms זה סטרינג אז אנחנו רוצים עכשיו לקחת את

  5. 01:29

    הסלרי ולהכניס לתוך הסטרינג וכמובן אנחנו רוצים בואו נדפיס את שניהם salary ובואו נדפיס גם את ה-sms message וכבר אנחנו רואים שיש פה איזושהי בעיה אז כמובן שהקומפיילר לא מאשר לבצע דבר כזה מה זה אומר זה אומר שאין פה implicit casting שיכול להתבצע על ידי הקומפיילר אוקיי אז בואו נעשה explicit casting איך אנחנו עושים explicit casting פשוט נפתח פה

  6. 02:09

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

  7. 02:41

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

  8. 03:22

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

  9. 03:57

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

  10. 04:10

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

  11. 04:38

    אפילו נקרא לזה sms salary message ואנחנו יודעים שהולך להישלח כאן איזשהו שהיא משכורת בואו נניח שזה 10,000.5 עכשיו אני בעצם רוצה לקחת את זה ולהפוך את זה לדאבל אמיתי למה כי אני רוצה לעשות עם זה כל מיני פעולות מתמטיות אז הנה יש לנו פה את הסלארי אני מנסה להכניס את הסמס סלארי מסאג' וכמובן אין פה שום אימפליסיט קאסטינג שניתן לבצע

  12. 05:16

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

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

ההרצאה הבאה: Numeric Suffixes

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

  • פונקציות - Functions (חלק 1)
  • פונקציות - Functions
  • Powershell functions
  • Qlik Aggregation Functions - Group By - חלק 1

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

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