(برنامه نویسی java) تبدیل غیر خودکار انواع ناسازگار در محیط جاوا (رباتیک_ الکترونیک )
نویسنده: (افشین رشید )
اگر چه تبدیلات خودکار انواع بسیار سودمند هستند ، اما جوابگوی همه نیازها نیستند . بعنوان مثال ، ممکن است بخواهیـد یـک مقـدار int را به یک متغیر byte نسبت دهید. این تبدیل بطور خودکار انجام نمی گیرد، زیرا یکbyte ازint کـوچکتر اسـت .
ایـن نـوع خاص از تبدیلات را گاهی تبدیل باریک کننـده (conversions narrowing ) مـی نامنـد ، زیـرا بطـور صـریح مقـدار را آنقـدر باریک تر و کم عرض تر می کنید تا با نوع هدف سازگاری یابد . برای ایجاد یک تبدیل بین دو نوع ناسازگار ، بایـد از cast اسـتفاده نمایید cast . یک تبدیل نوع کاملا" صریح است . شکل عمومی آن بقرار زیر می باشد
value )type - target( : (
نوع نوع مقصد یا هدف
در اینجا نوع هدف ، همان نوعی است که مایلیم مقدار مشخص شده را به آن تبدیل کنیم . بعنوان مثال ، قطعه زیراز یک برنامه تبدیل غیر خودکار ازint به byte را اجرا می کند . اگر مقدار integer بزرگتراز دامنه یک byte باشد ، این مقدار به مدول( باقیمانده تقسیم یک integer بر دامنه byte ) کاهش خواهد یافت.
- package demo11;
- class Demo11
- {
- void subtract(int x, int y)
- {
- System.out.println(x-y);
- }
- void subtract(int x, int y, int z)
- {
- System.out.println(x-y-z);
- }
- void subtract(int x, int y, int z, int w)
- {
- System.out.println(x-y-z-w);
- }
- public static void main(String[] args)
- {
- Demo11 s = new Demo11();
- s.subtract(20, 10);
- s.subtract(60, 30, 10);
- s.subtract(90, 30, 20, 10);
- }
- }
هر گاه که یک مقدار اعشاری به یک عدد صحیح نسبت داده شود ، شکل دیگری از تبدیل اتفاق می افتـد ، بریـدن ، . truncation همانطوریکه می دانیـد ، اعـداد صـحیح دارای قسـمت اعشـاری نیسـتند . بنـابراین هنگامیکـه یـک مقـدار اعشـاری بـه یـک نـوع عـدد صحیح نسبت داده می شود ، جزئ اعشاری از بین خواهد رفت ( بریده خواهد شد) . ( بعنوان مثال ، اگر مقدار 23.1 را بـه یـک عـدد صحیح نسبت دهـیم ، مقـدار حاصـله فقـط عـدد 1 مـی باشـد . مقـدار 23.0 بریـده (truncated) خواهـد شـد . البتـه اگـر انـدازه اجزائ عدد کلی آنچنان بزرگ باشد که در نوع عدد صحیح مقصد نگنجد ، آنگاه مقدار فوق به مدول دامنه نوع هـدف کـاهش خواهـد یافت.
نویسنده: (افشین رشید )