CodeGym /جاوا بلاگ /Random-UR /جاوا ٹائپ کاسٹنگ
John Squirrels
سطح
San Francisco

جاوا ٹائپ کاسٹنگ

گروپ میں شائع ہوا۔

جاوا میں ٹائپ کاسٹنگ کیا ہے؟

ڈیٹا کی قسم قدروں کا ایک پہلے سے طے شدہ سیٹ ہے جو ان اقدار کی قسم کی وضاحت کرتی ہے جو اس میں ذخیرہ کی جا سکتی ہیں اس کے ساتھ ساتھ ان پر کیا جا سکتا ہے۔
جاوا ٹائپ کاسٹنگ ایک ایسا عمل ہے جس کے ذریعے ایک ڈیٹا کی قسم کو دوسرے میں تبدیل کیا جاتا ہے۔
یہ مضمر اور واضح دونوں ہو سکتا ہے ۔ مضمر ٹائپ کاسٹنگ جسے خودکار ٹائپ کاسٹنگ بھی کہا جاتا ہے کمپائلر کے ذریعہ کیا جاتا ہے۔ واضح ٹائپ کاسٹنگ کوڈ میں پروگرامر کے ذریعہ دستی طور پر کیا جاتا ہے۔

ٹائپ کاسٹنگ کیوں ضروری ہے؟

جاوا میں مختلف قدیم ڈیٹا کی اقسام ہیں جن کے لیے میموری میں مختلف جگہوں کی ضرورت ہوتی ہے۔ یہ ایک ڈیٹا ٹائپ کی قدر دوسرے کو تفویض کرتے وقت مطابقت کے مسائل کا سبب بن سکتا ہے۔ اگر ڈیٹا ٹائپس پہلے سے ہی مطابقت رکھتی ہیں، تو ٹائپ کاسٹنگ خود بخود مرتب کرنے والے کے ذریعے کی جاتی ہے۔ اس طرح، ٹائپ کاسٹنگ ہمارے پروگرام میں ڈیٹا کی مختلف اقسام سے نمٹنے کے دوران مطابقت کا ایک بڑا مسئلہ حل کرتی ہے۔

جاوا ٹائپ کاسٹنگ کی اقسام

جاوا میں قسم کاسٹنگ کی دو قسمیں ہیں۔
  1. وائیڈننگ ٹائپ کاسٹنگ — اسے امپلیسیٹ یا آٹومیٹک ٹائپ کاسٹنگ بھی کہا جاتا ہے۔
  2. تنگ کرنے والی قسم کاسٹنگ — اسے واضح یا دستی قسم کاسٹنگ بھی کہا جاتا ہے۔

چوڑا قسم کاسٹنگ

وسیع کرنے والی ٹائپ کاسٹنگ، جیسا کہ نام سے پتہ چلتا ہے، ایک چھوٹے ڈیٹا کی قسم کو بڑے ڈیٹا کی قسم تک وسیع کرنا ہے۔ ہم یہ ٹائپ کاسٹنگ اس وقت انجام دیتے ہیں جب ہم ایک چھوٹی قسم کو بڑی قسم میں تبدیل کرنا چاہتے ہیں۔ ڈیٹا کی اقسام ایک دوسرے کے ساتھ ہم آہنگ ہونی چاہئیں۔ عددی سے چار یا بولین قسم میں کوئی مضمر تبدیلی نہیں ہے۔ جاوا میں، چار اور بولین قسمیں غیر مطابقت پذیر ہیں۔
بائٹ -> مختصر -> چار -> انٹ -> لمبی -> فلوٹ -> ڈبل
اس قسم کی کاسٹنگ بغیر کسی معلومات کے نقصان کے کمپائلر کے ذریعہ خود بخود کی جاتی ہے۔ اسے پروگرامر کے ذریعہ کسی بیرونی ٹرگر کی ضرورت نہیں ہے۔

مثال

//Automatic type conversion
public class WideningExample {
   public static void main(String[] args) {

       int i = 100;
       System.out.println("int value: " + i);

       // int to long type
       long l = i;
       System.out.println("int to long value: " + l);

       // long to float type
       float f = l;
       System.out.println("int to float value: " + f);


       byte b = 1;
       System.out.println("byte value: " + b);

       // byte to int type
       i = b;
       System.out.println("byte to int value: " + i);

       char c = 'a';
       System.out.println("char value: " + c);

       // char to int type
       i = c;

       // prints the ASCII value of the given character
       // ASCII value of 'a' = 97
       System.out.println("char to int value: " + i);
   }
}

آؤٹ پٹ

int ویلیو: 100 int to long value: 100 int to float value: 100.0 byte value: 1 byte to int value: 1 char value: a char to int value: 97

وضاحت

مندرجہ بالا کوڈ میں، ہم نے ٹائپ کاسٹنگ کو وسیع کرنا دکھایا ہے جو کمپائلر خود بخود کرتا ہے۔ سب سے پہلے، ہم نے ایک int ، بائٹ ، اور char کو قدریں تفویض کیں ۔ اس کے بعد ہم نے int ویلیوز کو ایک long اور float کو تفویض کیا ، یہ دونوں int سے بڑے ہیں ۔ ہم نے بائٹ اور چار ویلیوز کو int کو بھی تفویض کیا ہے ۔ بائٹ اور char دونوں int کے مقابلے میں چھوٹے ڈیٹا کی قسمیں ہیں ، اس طرح، یہ تبادلے مضمر تھے۔

تنگ کرنے والی قسم کاسٹنگ

تنگ کرنے والی ٹائپ کاسٹنگ، جیسا کہ نام سے پتہ چلتا ہے، ایک بڑے ڈیٹا کی قسم کو چھوٹے ڈیٹا کی قسم تک محدود کرنا ہے۔ ہم یہ ٹائپ کاسٹنگ اس وقت انجام دیتے ہیں جب ہم ایک بڑی قسم کو چھوٹی قسم میں تبدیل کرنا چاہتے ہیں۔
ڈبل -> فلوٹ -> لمبی -> انٹ -> چار -> مختصر -> بائٹ
اس قسم کی کاسٹنگ کے لیے، ہم اپنی اپنی تبدیلی کی وضاحت کر کے Java کے ڈیفالٹ کنورژن کو اوور رائیڈ کر دیتے ہیں۔ اس کو حاصل کرنے کے لیے، ہم متغیر یا قدر لکھتے ہیں جسے قوسین '()' میں ٹارگٹ ڈیٹا ٹائپ سے پہلے ٹائپ کاسٹ کرنے کی ضرورت ہے۔ تاہم، اس قسم کی کاسٹنگ کے نتیجے میں درستگی کا ممکنہ نقصان ہو سکتا ہے۔

مثال

//Manual Type Conversion
public class NarrowingExample {
   public static void main(String[] arg) {

       // double data type
       double d = 97.04;
       // Print statements
       System.out.println("double value: " + d);

       // Narrowing type casting from double to long
       // implicitly writing the target data type in () followed by initial data type
       long l = (long) d;

       // fractional part lost - loss of precision
       System.out.println("long value: " + l);

       // Narrowing type casting from double to int
       // implicitly writing the target data type in () followed by initial data type
       int i = (int) l;

       // fractional part lost - loss of precision
       System.out.println("int value: " + i);

       // Narrowing type casting from double to int
       // implicitly writing the target data type in () followed by initial data type
       char c = (char) i;

       // displaying character corresponding to the ASCII value of 100
       System.out.println("char value: " + c);
   }
}

آؤٹ پٹ

ڈبل ویلیو: 97.04 لمبی ویلیو: 97 int ویلیو: 97 char قدر: a

وضاحت

پروگرامر کے ذریعہ معیاری نحو کا استعمال کرتے ہوئے ٹائپ کاسٹنگ کو تنگ کرنے کی ضرورت ہے۔ اوپر والے پروگرام میں، ہم نے ڈبل ویلیو کے ساتھ شروعات کی ہے جو لمبی اور int ڈیٹا کی اقسام سے بڑی ہے۔ ہم نے مطلوبہ ٹارگٹ ڈیٹا کی اقسام کے ساتھ قوسین کا استعمال کرتے ہوئے اس ڈبل سے لمبے اور int کو ٹائپ کاسٹ کیا۔ ہم نے دستی طور پر 'int' کو 'char' میں ٹائپ کیا ہے۔

نتیجہ

اس پوسٹ کے اختتام تک، ہم امید کرتے ہیں کہ آپ جاوا ٹائپ کاسٹنگ سے تفصیل سے واقف ہو چکے ہوں گے۔ آپ نے جاوا میں ٹائپ کاسٹنگ کی دو قسمیں سیکھی ہیں۔ آپ نے یہ بھی سیکھا ہے کہ نارونگ ٹائپ کاسٹنگ کا استعمال کرتے ہوئے غیر موافق ڈیٹا کی اقسام کو دستی طور پر کاسٹ کرنا ہے۔ آپ اسے مزید گہرائی میں سمجھنے کے لیے اپنے طور پر مختلف قدروں کے ساتھ ڈیٹا کی اقسام کے دیگر مجموعے آزما سکتے ہیں۔ تصور کی گہری کمانڈ کے لیے مشق کرتے رہیں۔ تب تک، بڑھتے رہیں اور چمکتے رہیں!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION