تبدیل نوع در جاوا

تبدیل نوع در جاوا
تبدیل نوع در جاوا به فرایند تبدیل یک متغیر از یک نوع به نوع دیگر اشاره دارد. این فرایند به دو دسته اصلی تقسیم میشود: تبدیل ضمنی (که به آن گسترش نیز گفته میشود) و تبدیل صریح (که به آن کاهش نیز گفته میشود).
۱. تبدیل ضمنی (گسترش)
این زمانی اتفاق میافتد که شما یک نوع داده کوچکتر را به نوع داده بزرگتر تبدیل میکنید. جاوا بهطور خودکار این تبدیل را انجام میدهد، بنابراین نیازی به مشخص کردن آن نیست. به عنوان مثال:
; int num = 10
; long longNum = num
; double doubleNum = longNum
این زمانی ضروری است که شما یک نوع داده بزرگتر را به نوع داده کوچکتر تبدیل کنید. شما باید نوعی را که میخواهید به آن تبدیل شوید، مشخص کنید، زیرا این میتواند منجر به از دست رفتن دادهها شود. به عنوان مثال:
; double doubleNum = 9.78
; int num = (int) doubleNum
۳. تبدیل نوع با اشیاء
در زمینه وراثت، تبدیل نوع میتواند به اشیاء نیز مربوط شود. شما میتوانید یک شی از یک زیرکلاس را به سوپرکلاس آن (بالا رفتن) یا سوپرکلاس را به زیرکلاس (پایین رفتن) تبدیل کنید، اما پایین رفتن نیاز به تبدیل صریح دارد و باید با احتیاط انجام شود تا از وقوع ClassCastException
جلوگیری شود.
بالا رفتن:
{} class Animal
{} class Dog extends Animal
; () Animal animal = new Dog
پایین رفتن:
;() Animal animal = new Dog
; Dog dog = (Dog) animal
۴. مثال از تبدیل
در اینجا یک مثال ساده داریم که هم تبدیلهای ابتدایی و هم شیء را ترکیب میکند:
{} class Parent
{} class Child extends Parent
public class Main
} public static void main(String[] args)
تبدیل ضمنی//
; int a = 5
; double b = a
تبدیل صریح//
; double c = 9.99
; int d = (int) c
تبدیل اشیاء//
; ()Parent p = new Child
; Child ch = (Child) p
{
{
خلاصه
- تبدیل ضمنی خودکار و ایمن است، در حالی که تبدیل صریح باید بهطور دستی انجام شود و میتواند منجر به از دست رفتن دادهها شود.
- تبدیل اشیاء باید با احتیاط انجام شود تا از بروز استثناهای زمان اجرا جلوگیری شود. همیشه قبل از پایین رفتن، از
instanceof
برای بررسی نوع استفاده کنید.
اگر سناریوها یا مثالهای خاصی دارید که میخواهید بیشتر بررسی کنید، خوشحال میشوم کمک کنم!
دیدگاهتان را بنویسید