(برنامه نویسی java) تبدیل غیر خودکار انواع ناسازگار در محیط جاوا (رباتیک_ الکترونیک )

نویسنده:  (افشین رشید )


اگر چه تبدیلات خودکار انواع بسیار سودمند هستند ، اما جوابگوی همه نیازها نیستند . بعنوان مثال ، ممکن است بخواهیـد یـک مقـدار int را به یک متغیر byte نسبت دهید. این تبدیل بطور خودکار انجام نمی گیرد، زیرا یکbyte ازint  کـوچکتر اسـت .

ایـن نـوع خاص از تبدیلات را گاهی تبدیل باریک کننـده (conversions narrowing ) مـی نامنـد ، زیـرا بطـور صـریح مقـدار را آنقـدر باریک تر و کم عرض تر می کنید تا با نوع هدف سازگاری یابد . برای ایجاد یک تبدیل بین دو نوع ناسازگار ، بایـد از cast اسـتفاده نمایید cast . یک تبدیل نوع کاملا" صریح است . شکل عمومی آن بقرار زیر می باشد

value )type - target( : ( 

نوع نوع مقصد یا هدف

در اینجا نوع هدف ، همان نوعی است که مایلیم مقدار مشخص شده را به آن تبدیل کنیم . بعنوان مثال ، قطعه زیراز یک برنامه تبدیل غیر خودکار ازint به byte را اجرا می کند . اگر مقدار integer بزرگتراز دامنه یک byte باشد ، این مقدار به مدول( باقیمانده تقسیم یک integer بر دامنه byte ) کاهش خواهد یافت.

  1. package demo11;  
  2. class Demo11  
  3. {  
  4.     void subtract(int x, int y)  
  5.     {  
  6.         System.out.println(x-y);  
  7.     }  
  8.     void subtract(int x, int y, int z)  
  9.     {  
  10.         System.out.println(x-y-z);  
  11.     }  
  12.     void subtract(int x, int y, int z, int w)  
  13.     {  
  14.         System.out.println(x-y-z-w);  
  15.     }  
  16.     public static void main(String[] args)  
  17.     {  
  18.         Demo11 s = new Demo11();  
  19.         s.subtract(2010);  
  20.         s.subtract(603010);  
  21.         s.subtract(90302010);  
  22.     }  
  23. }  

هر گاه که یک مقدار اعشاری به یک عدد صحیح نسبت داده شود ، شکل دیگری از تبدیل اتفاق می افتـد ، بریـدن ، . truncation همانطوریکه می دانیـد ، اعـداد صـحیح دارای قسـمت اعشـاری نیسـتند . بنـابراین هنگامیکـه یـک مقـدار اعشـاری بـه یـک نـوع عـدد صحیح نسبت داده می شود ، جزئ اعشاری از بین خواهد رفت ( بریده خواهد شد) . ( بعنوان مثال ، اگر مقدار 23.1 را بـه یـک عـدد صحیح نسبت دهـیم ، مقـدار حاصـله فقـط عـدد 1 مـی باشـد . مقـدار 23.0 بریـده (truncated) خواهـد شـد . البتـه اگـر انـدازه اجزائ عدد کلی آنچنان بزرگ باشد که در نوع عدد صحیح مقصد نگنجد ، آنگاه مقدار فوق به مدول دامنه نوع هـدف کـاهش خواهـد یافت.

نویسنده:  (افشین رشید )