دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
برنامه نویسی غیر همزمان در سی شارپ
1404/12/08 -
تبدیل متغیرها به هم در جاوا
1404/12/08 -
تابع SQL Substring در sql server
1404/12/07 -
انواع متغیر ها در جاوا
1404/12/07 -
رمزنگاری پسورد در سی شارپ
1404/12/06 -
متغیرها در جاوا (Java Variables)
1404/12/06
تبدیل متغیرها به هم در جاوا
تبدیل متغیرها در جاوا
تبدیل متغیرها در جاوا (Type Casting در Java) به فرآیندی گفته میشود که طی آن یک نوع داده (Data Type) به نوع دیگری تبدیل میشود.
در زبان Java این تبدیل زمانی اهمیت پیدا میکند که بخواهیم دادهای را در محاسبات، ذخیرهسازی یا پردازش استفاده کنیم اما نوع آن با نوع مورد نیاز ما متفاوت باشد.
برای مثال ممکن است ورودی کاربر بهصورت String دریافت شود اما برای انجام عملیات ریاضی لازم باشد آن را به int یا double تبدیل کنیم.
به طور کلی تبدیل نوع داده در جاوا به دو دسته اصلی تقسیم میشود: تبدیل خودکار (Implicit Casting) و تبدیل دستی (Explicit Casting).
در Type Casting در Java اگر تبدیل از نوع کوچکتر به نوع بزرگتر انجام شود (مانند تبدیل int به double)، این فرآیند بهصورت خودکار و بدون نیاز به دخالت برنامهنویس انجام میشود که به آن Widening Casting میگویند.
اما اگر تبدیل از نوع بزرگتر به نوع کوچکتر باشد (مانند تبدیل double به int)، باید بهصورت دستی انجام شود و امکان از دست رفتن بخشی از داده وجود دارد؛ به این حالت Narrowing Casting گفته میشود.
در این نوع تبدیل، برنامهنویس با قرار دادن نوع مقصد داخل پرانتز قبل از متغیر، به کامپایلر اعلام میکند که از این تبدیل آگاه است.
تبدیل متغیرها در جاوا فقط محدود به انواع دادههای اولیه (Primitive Types) نیست، بلکه در مورد اشیاء (Object) و کلاسها نیز کاربرد دارد؛ مانند Upcasting و Downcasting در وراثت.
این موضوع در پروژههای واقعی مثل سیستمهای فروشگاهی، نرمافزارهای مالی و برنامههای تحت وب بسیار رایج است.
تسلط بر تبدیل نوع داده در جاوا باعث میشود از بروز خطاهایی مانند ClassCastException یا NumberFormatException جلوگیری کرده و کدی ایمنتر و حرفهایتر بنویسیم.
🚀 از صفر تا قهرمان جاوا، فقط با یک دوره!
به دنبال یه فرصت طلایی برای شروع برنامهنویسی میگردی؟
دوره آموزشی جاوا ما، همون چیزیه که نیاز داری!✨ چرا این دوره رو انتخاب میکنی؟
🎯 از مبتدی تا حرفهای
بدون پیشزمینه شروع میکنی و به یه برنامهنویس جاوا تبدیل میشی که بازار کار منتظرته!🛠 پروژهمحور و عملی
با انجام پروژههای واقعی، کدنویسی رو یاد میگیری، نه فقط تئوری!👨🏫 پشتیبانی همیشگی
هرجا گیر کنی، تیم پشتیبانی کنارته تا مشکلت حل بشه.🔓 دسترسی مادامالعمر
هر وقت خواستی به محتوا دسترسی داری، برای همیشه!
تبدیل نوع داده در جاوا چیست؟
تبدیل متغیرها در جاوا به فرآیندی گفته میشود که طی آن یک نوع داده (Data Type) به نوع دیگری تبدیل میشود.
این تبدیل میتواند بهصورت خودکار (Implicit) یا دستی (Explicit) انجام شود.
در زبان Java دو دسته اصلی تبدیل وجود دارد:
-
Widening Casting (Implicit Casting)
-
Narrowing Casting (Explicit Casting)
1️⃣ Widening Casting (تبدیل خودکار)
در این حالت، داده از نوع کوچکتر به نوع بزرگتر تبدیل میشود و جاوا این کار را بهصورت خودکار انجام میدهد.
ترتیب تبدیل خودکار:
byte → short → int → long → float → double
مثال ساده:
int number = 100;
double result = number; // تبدیل خودکار int به double
System.out.println(result);
در اینجا چون double بزرگتر از int است، جاوا بهصورت خودکار تبدیل را انجام میدهد.
مثال پروژهای (سیستم فروشگاهی)
فرض کنید در یک نرمافزار فروشگاهی، قیمت کالا به صورت int ذخیره شده اما هنگام محاسبه مالیات باید به صورت اعشاری محاسبه شود:
int price = 200000;
double tax = price * 0.09;
System.out.println("Tax: " + tax);
اینجا تبدیل متغیرها به هم در جاوا بهصورت خودکار انجام شده است.
2️⃣ Narrowing Casting (تبدیل دستی)
در این حالت، نوع بزرگتر به نوع کوچکتر تبدیل میشود و احتمال از دست رفتن داده وجود دارد.
بنابراین باید صراحتاً مشخص کنیم.
مثال:
double number = 10.75;
int result = (int) number; // تبدیل دستی
System.out.println(result);
خروجی:
10
قسمت اعشاری حذف میشود.
مثال تجاری (سیستم حقوق و دستمزد)
فرض کنید حقوق کارمند به صورت اعشاری محاسبه شده ولی در گزارش نهایی فقط عدد صحیح لازم است:
double salary = 12500000.75;
int finalSalary = (int) salary;
System.out.println("Final Salary: " + finalSalary);
در این مثال، Type Casting در Java بهصورت Explicit انجام شده است.
تبدیل نوع دادههای غیر اولیه (Reference Type Casting)
در جاوا علاوه بر Primitive Typeها، میتوان Objectها را هم Cast کرد.
Upcasting (خودکار)
class Animal {}
class Dog extends Animal {}
Animal myDog = new Dog(); // Upcasting
Downcasting (دستی)
Animal animal = new Dog();
Dog dog = (Dog) animal; // Downcasting
در پروژههای واقعی مثل سیستم مدیریت کاربران، این نوع تبدیل بسیار رایج است.
تبدیل String به عدد و بالعکس در Java
در پروژههای وب و تجاری، ورودی کاربر معمولاً به صورت String دریافت میشود.
بنابراین تبدیل نوع داده در جاوا بسیار حیاتی است.
تبدیل String به int
String number = "500";
int value = Integer.parseInt(number);
System.out.println(value);
تبدیل String به double
String price = "99.99";
double amount = Double.parseDouble(price);
تبدیل عدد به String
int number = 100;
String text = String.valueOf(number);
مثال پروژهمحور (سیستم ثبت سفارش آنلاین)
فرض کنید کاربر قیمت را در فرم وارد میکند:
String inputPrice = "250000";
int price = Integer.parseInt(inputPrice);
double discount = price * 0.1;
double finalPrice = price - discount;
System.out.println("Final Price: " + finalPrice);
در این پروژه، چندین بار تبدیل متغیرها در جاوا انجام شده است.
خطاهای رایج در Type Casting در Java
1️⃣ NumberFormatException
String text = "abc";
int number = Integer.parseInt(text); // خطا
2️⃣ ClassCastException
Animal animal = new Animal();
Dog dog = (Dog) animal; // خطا
بهترین روشهای تبدیل نوع داده در جاوا
✅ قبل از Downcasting از instanceof استفاده کنید
✅ هنگام تبدیل String از try-catch استفاده کنید
✅ از Wrapper Classها بهدرستی بهره ببرید
✅ در پروژههای مالی از BigDecimal استفاده کنید
مثال پیشرفته تجاری (سیستم پرداخت آنلاین)
import java.math.BigDecimal;
String input = "125000.50";
BigDecimal amount = new BigDecimal(input);
BigDecimal tax = amount.multiply(new BigDecimal("0.09"));
BigDecimal total = amount.add(tax);
System.out.println("Total Payment: " + total);
در پروژههای واقعی مالی، این روش دقیقتر از double است.
سوالات درباره تبدیل متغیرها در جاوا
1️⃣ تفاوت Widening و Narrowing چیست؟
Widening خودکار است و داده از دست نمیرود؛ Narrowing دستی است و ممکن است داده حذف شود.
2️⃣ آیا int به double نیاز به cast دارد؟
خیر، این تبدیل خودکار انجام میشود.
3️⃣ آیا double به int خودکار است؟
خیر، باید بهصورت دستی انجام شود.
4️⃣ چگونه String را به عدد تبدیل کنیم؟
با استفاده از ()Integer.parseInt یا ()Double.parseDouble.
5️⃣ چرا ClassCastException رخ میدهد؟
وقتی شیء واقعاً از آن نوع نباشد.
6️⃣ آیا boolean قابل Cast شدن است؟
خیر، boolean قابل تبدیل به انواع عددی نیست.
7️⃣ تفاوت parseInt و valueOf چیست؟
parseInt مقدار primitive میدهد ولی valueOf شیء Integer برمیگرداند.
8️⃣ در پروژههای مالی از چه نوعی استفاده کنیم؟
BigDecimal بهترین گزینه است.
9️⃣ آیا امکان تبدیل Object به String وجود دارد؟
بله، با متد ()toString
🔟 چگونه از خطای تبدیل جلوگیری کنیم؟
با استفاده از try-catch و بررسی نوع داده.
جمعبندی
تبدیل متغیرها به هم در جاوا یکی از مهمترین مباحث پایهای است که در تمام پروژههای نرمافزاری، از سیستمهای فروشگاهی گرفته تا اپلیکیشنهای سازمانی، کاربرد دارد.
آشنایی کامل با Type Casting در Java باعث میشود کد شما ایمنتر، حرفهایتر و قابلاعتمادتر باشد.
اگر در حال توسعه یک پروژه تجاری هستید، حتماً اصول تبدیل نوع داده در جاوا را بهدرستی پیادهسازی کنید تا از خطاهای رایج و مشکلات مالی جلوگیری شود.
دوره های مرتبط
آموزش برنامه نویسی Java
Java یکی از زبان های شی گرایی قوی در عرصه تولید نرم افزار های بانکی و امنیتی به شمار می رود.











