السلام عليكم
اريد شرح لمفهوم Typecasting في java للمبتدئين بحثت في النت عن شروحات عربية لكن اغلبها شرح غير وافي , ممكن احد يشرحلي هي لدي اختبار الأسبوع القادم
يعني اسناد قيمة مُتغير ما إلى مُتغير من نوع أخر يُعرف هذا بالـ Type Casting
وينقسم الـ Type Casting إلى نوعان هما:
1- الـ Automatic type converion (التحويل التلقائي):
byte >> short >> int >> long >> float >> double
يجب أن تكون المتغيرات ذات أنواع متوافقة
يجب أن يكون المُتغير المسند إليه القيمة أكبر ويستوعب قيمة المُتغير المُسند والتالي مثال للتوضيح:
public class TypeCasting
{
public static void main(String[] args)
{
int var1 = 100;
long var2 = var1;
float var3 = var2;
System.out.println(var1);
System.out.println(var2);
System.out.println(var3);
}
}
// Out Puts
// 100
// 100
// 100.0
2- الـ Explicit type conversion (التحويل الإجباري):
double >> float >> long >> int >> short >> byte
في حالة كون قيمة المُتغير المُسند أكبر من قيمة المُتغير المُسند إليه نحن بحاجة لإجبار لعملية تحويل نوع المُتغير والتالي مثال للتوضيح:
public class TypeCasting
{
public static void main(String[] args)
{
double var1 = 100.04;
long var2 = (long)var1;
int var3 = (int)var2;
System.out.println(var1);
System.out.println(var2);
System.out.println(var3);
}
}
// Out Puts
// 100.04
// 100
// 100
افدتني جداً جزاك الله خير وفي ميزان حسناتك لاكن كيف يكون الـcasting هكذا class obj = (class) class; لم افهم هذا
هذه ليست فئات(classes) وإنما أنواع مُتغيرات
TypeX var1 = VaueOfTypeX;
TypeY var2 = (TypeY) var1;
كمثال لدي مُتغير اسمه var1 من النوع long واريد حفظ قيمة هذا المُتغير في مُتغير آخر باسم var2 من النوع int في هذه الحالة سنقوم بعملية التحويل بين قوسين على حسب نوع المُتغير المُسند إليه القيمة كالتالي:
long var1 = 100;
int var2 = (int)var1;
التعليقات