CodeGym /جاوا بلاگ /Random-SD /جاوا ٽائيپ ڪاسٽنگ
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 byte value: 1 byte to int value: 1 char value: a char to int value: 97

وضاحت

مٿي ڏنل ڪوڊ ۾، اسان وائڊننگ ٽائپ ڪاسٽنگ کي ڏيکاريو آهي جيڪو پاڻمرادو ڪمپيلر طرفان ڪيو ويندو آهي. سڀ کان پهريان، اسان هڪ int ، byte ، ۽ char کي قدر مقرر ڪيو . اسان پوءِ int ويلز کي ڊگھي ۽ فلوٽ تي لڳايو ، جيڪي ٻئي int کان وڏا آھن . اسان بائيٽ ۽ چار ويلز کي پڻ int تي لڳايو . ٻئي بائيٽ ۽ چار int کان ننڍا ڊيٽا جا قسم آهن ، اهڙيء طرح، اهي تبديليون ضمني هئا.

تنگ ڪرڻ جو قسم ڪاسٽنگ

تنگ ڪرڻ واري ٽائيپ ڪاسٽنگ، جيئن نالو ڏيکاري ٿو، وڏي ڊيٽا جي قسم کي ننڍي ڊيٽا جي قسم کي تنگ ڪرڻ ڏانهن اشارو ڪري ٿو. اسان هن قسم جي ڪاسٽنگ کي انجام ڏيو ٿا جڏهن اسان هڪ وڏي قسم کي ننڍي قسم ۾ تبديل ڪرڻ چاهيون ٿا.
ڊبل -> فلوٽ -> ڊگهو -> انٽ -> چار -> مختصر -> بائيٽ
هن قسم جي ڪاسٽنگ لاءِ، اسان جاوا جي ڊفالٽ تبادلي کي اوور رائڊ ڪريون ٿا اسان جي پنهنجي تبادلي جي وضاحت ڪندي. هن کي حاصل ڪرڻ لاءِ، اسان متغير يا قدر لکون ٿا جنهن کي ٽائيپ ڪاسٽ ڪرڻ جي ضرورت آهي اڳي ئي ٽائيپ ڪاسٽ ٿيل ڊيٽا جي قسم قوس ۾ '()'. بهرحال، اهڙي قسم جي ڪاسٽنگ جي نتيجي ۾ ٿي سگهي ٿي ته ممڪن نقصان جي درستگي.

مثال

//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 چار قدر: a

وضاحت

تنگ ڪرڻ واري ٽائپ ڪاسٽنگ کي معياري نحو استعمال ڪندي پروگرامر طرفان واضح طور تي ڪرڻ جي ضرورت آهي. مٿي ڏنل پروگرام ۾، اسان ڊبل قيمت سان شروع ڪيو آهي جيڪو ڊگهو ۽ انٽ ڊيٽا جي قسمن کان وڏو آهي. اسان هن ڊبل کي ڊگھي ۽ int کي ٽائيپ ڪاسٽ ڪيو قوسون استعمال ڪندي گهربل ٽارگيٽ ڊيٽا جي قسمن سان. اسان پڻ دستي طور تي ٽائيپ ڪيو آهي 'int' کي 'char'.

نتيجو

هن پوسٽ جي آخر تائين، اسان کي اميد آهي ته توهان پنهنجو پاڻ کي جاوا ٽائپ ڪاسٽنگ سان تفصيل سان واقف ڪيو آهي. توهان جاوا ۾ ٽائيپ ڪاسٽنگ جا ٻه قسم سکيا آهن. توهان اهو پڻ سکيو آهي ته ڪيئن دستي طور تي غير مطابقت رکندڙ ڊيٽا جي قسمن کي تنگ ڪرڻ واري ٽائپ ڪاسٽنگ استعمال ڪندي. توھان ڪوشش ڪري سگھوٿا ڊيٽا جي قسمن جي ٻين مجموعن کي پنھنجي طور تي مختلف قدرن سان ان کي وڌيڪ کوٽائي ۾ سمجھڻ لاءِ. تصور جي گہرے حڪم لاء مشق رکو. ان وقت تائين، وڌندا رهو ۽ چمڪندڙ رکو!
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION