تبدیل نوع (Type Casting)

تبدیل خودکار (Widening) و صریح (Narrowing) بین انواع داده در جاوا.

تبدیل نوع چیست؟

تغییر یک نوع داده به نوع دیگر. در جاوا دو نوع تبدیل داریم:

۱. تبدیل خودکار (Widening)

از نوع کوچک‌تر به بزرگ‌تر — خودکار و بدون خطا:

int myInt = 9;
double myDouble = myInt;    ← خودکار: int → double

System.out.println(myInt);     ← 9
System.out.println(myDouble);  ← 9.0

سلسله‌مراتب Widening

byte → short → int → long → float → double
                char ↗

۲. تبدیل صریح (Narrowing)

از نوع بزرگ‌تر به کوچک‌تر — باید دستی انجام شود و ممکن است داده از دست برود:

double myDouble = 9.78;
int myInt = (int) myDouble;   ← دستی: double → int

System.out.println(myDouble);  ← 9.78
System.out.println(myInt);     ← 9 (بخش اعشاری حذف شد!)
در Narrowing بخش اعشاری گرد نمی‌شود بلکه حذف می‌شود: (int) 9.99 می‌شود 9!

مثال‌های رایج

تبدیل به int برای محاسبه

double a = 7.5;
double b = 2.0;
int result = (int) (a / b);   ← 3 (نه 3.75)

تبدیل char به int (کد Unicode)

char letter = \A\;
int code = (int) letter;      ← 65

char c = (char) 66;           ← B

تبدیل رشته به عدد

String str = "123";
int num = Integer.parseInt(str);      ← رشته → int

String str2 = "3.14";
double d = Double.parseDouble(str2);  ← رشته → double

تبدیل عدد به رشته

int num = 42;
String str = String.valueOf(num);     ← int → رشته
String str2 = num + "";               ← راه ساده‌تر!

جدول جمع‌بندی

ازبهروشداده‌از‌دست‌رفته؟
intdoubleخودکارخیر
doubleint(int)بله — اعشار حذف
intchar(char)ممکن
StringintInteger.parseInt()خطا اگر عددی نباشد
intStringString.valueOf() یا + ""خیر

این مبحث بخشی از دوره آموزش کامل جاوا است.

ابزارهای مرتبط