logo

הקלד Casting ב-Java

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

הקלד Casting ב-Java

סוג ליהוק

המרת ערך מסוג נתונים אחד לסוג נתונים אחר מכונה סוג ליהוק .

ג'אווה גנרית

סוגי יציקת סוגים

ישנם שני סוגים של סוג יציקה:

  • סוג הרחבת יציקה
  • צמצום סוג יציקה

סוג הרחבת יציקה

המרת סוג נתונים נמוך יותר לסוג גבוה יותר נקראת הִתרַחֲבוּת סוג ליהוק. זה ידוע גם בשם המרה מרומזת אוֹ להשליך למטה . זה נעשה באופן אוטומטי. זה בטוח כי אין סיכוי לאבד נתונים. זה מתרחש כאשר:

  • שני סוגי הנתונים חייבים להיות תואמים זה לזה.
  • סוג היעד חייב להיות גדול יותר מסוג המקור.
 byte -> short -> char -> int -> long -> float -> double 

לדוגמה, ההמרה בין סוג נתונים מספרי ל-char או Boolean אינה מתבצעת באופן אוטומטי. כמו כן, סוגי הנתונים char ובוליאניים אינם תואמים זה לזה. בואו נראה דוגמה.

WideningTypeCastingExample.java

 public class WideningTypeCastingExample { public static void main(String[] args) { int x = 7; //automatically converts the integer type into long type long y = x; //automatically converts the long type into float type float z = y; System.out.println('Before conversion, int value '+x); System.out.println('After conversion, long value '+y); System.out.println('After conversion, float value '+z); } } 

תְפוּקָה

 Before conversion, the value is: 7 After conversion, the long value is: 7 After conversion, the float value is: 7.0 

בדוגמה לעיל, לקחנו משתנה x והמרנו אותו לסוג ארוך. לאחר מכן, הסוג הארוך מומר לסוג הצף.

צמצום סוג יציקה

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

 double -> float -> long -> int -> char -> short -> byte 

בוא נראה דוגמה של יציקה מסוג צמצום.

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

NarrowingTypeCastingExample.java

 public class NarrowingTypeCastingExample { public static void main(String args[]) { double d = 166.66; //converting double data type into long data type long l = (long)d; //converting long data type into int data type int i = (int)l; System.out.println('Before conversion: '+d); //fractional part lost System.out.println('After conversion into long type: '+l); //fractional part lost System.out.println('After conversion into int type: '+i); } } 

תְפוּקָה

 Before conversion: 166.66 After conversion into long type: 166 After conversion into int type: 166