تبدیل نوع (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 + ""; ← راه سادهتر!
جدول جمعبندی
| از | به | روش | دادهازدسترفته؟ |
|---|---|---|---|
| int | double | خودکار | خیر |
| double | int | (int) | بله — اعشار حذف |
| int | char | (char) | ممکن |
| String | int | Integer.parseInt() | خطا اگر عددی نباشد |
| int | String | String.valueOf() یا + "" | خیر |
این مبحث بخشی از دوره آموزش کامل جاوا است.