JavaRush /جاوا بلاگ /Random-UR /جاوا میں toString() طریقہ کو اوور رائیڈ کرنے کے 10 نکات (...
Ku6ep
سطح

جاوا میں toString() طریقہ کو اوور رائیڈ کرنے کے 10 نکات (حصہ 1)

گروپ میں شائع ہوا۔
جاوا میں toString() طریقہ کو اوور رائیڈ کرنے کے 10 نکات - ToStringBuilder Netbeans Eclipse جاوا میں toString() طریقہ کو اوور رائیڈ کرنے کے 10 نکات (حصہ 1) - 1

جاوا ٹو اسٹرنگ کا طریقہ

toStringجاوا میں طریقہ استعمال کیا جاتا ہے کسی چیز کے بارے میں واضح اور کافی معلومات فراہم کرنے کے لیے ( Object) انسانی پڑھنے کے قابل شکل میں۔ مناسب طریقہ اوور رائڈنگ قیمتی اور اہم معلومات فراہم کر کے جاوا پروگرام کو لاگ ان اور ڈیبگ کرنے میںtoString مدد کر سکتی ہے ۔ چونکہ اس کی تعریف ایک کلاس میں کی گئی ہے اور اس کا پہلے سے طے شدہ نفاذ زیادہ معلومات فراہم نہیں کرتا ہے، اس لیے نسلی طبقے میں اس طریقہ کو اوور رائڈ کرنا ہمیشہ بہترین عمل ہے۔ درحقیقت، اگر آپ قسم کی ایک اہم یا عمومی کلاس بنا رہے ہیں ، یا ہمیشہ جاوا میں برابر ، hashCode ، compareTo اور طریقوں کو اوور رائیڈ کر رہے ہیں۔ پہلے سے طے شدہ طور پر نفاذ فارم میں آؤٹ پٹ پیدا کرتا ہے ، مثال کے طور پر ہماری مثال کے طور پر کلاس کا طریقہ test.Country@18e2b22 پرنٹ کرے گا جہاں 18e2b22 ہیکساڈیسیمل میں آبجیکٹ کا ہیش کوڈ ہے، اگر آپ ہیش کوڈ طریقہ کو کہتے ہیں تو یہ 260943370 لوٹائے گا جو کہ 18e2b22 کے اعشاریہ کے برابر۔ کسی مسئلے کی تلاش کے دوران یہ معلومات خاص طور پر مفید نہیں ہوتی ہیں۔ آئیے ایک حقیقی زندگی کی مثال دیکھیں جہاں آپ کو اپنے نیٹ ورک کنکشن میں کوئی مسئلہ تلاش کرنے کی ضرورت ہے، ایسی صورت میں جب آپ یہ جاننا چاہتے ہیں کہ آپ کا سسٹم کس میزبان اور پورٹ سے منسلک ہونے کی کوشش کر رہا ہے اور اگر یا صرف پہلے سے طے شدہ معلومات کو پرنٹ کرتا ہے ، تو یہ ہو جائے گا ۔ اصل مسئلہ کا تصور کرنا ناممکن ہے، لیکن ایک اوور رائیڈڈ نفاذ کے ساتھ وہ مفید معلومات فراہم کر سکتے ہیں جیسے میزبان نام اور پورٹ نمبر۔ اس جاوا ٹیوٹوریل میں ہم کوڈ کی مثالوں کے ساتھ طریقہ اوور رائیڈنگ کے بارے میں کچھ تجاویز دیں گے ۔toString()java.lang.ObjectOrderTradeEmployeetoStringtoStringpackage.class@hashCodetoString()toString()CountrySocketServerSockettoStringtoStringtoString

جاوا میں toString طریقہ کو اوور رائڈ کرنے کا طریقہ:

خام قدر کی بجائے فارمیٹ شدہ تاریخ (یعنی دن/مہینہ/سال) پرنٹ کرتا ہے۔ جاوا طریقہ کو اوور رائیڈ کرتے وقت یہ بہت مفید اشارہ ہے toString۔ باقاعدہ toString()کلاس java.util.Dateفارمیٹ شدہ تاریخ کو آؤٹ پٹ نہیں کرتی ہے اور اس میں بہت ساری تفصیلات شامل ہوتی ہیں جن کی ہمیشہ ضرورت نہیں ہوتی ہے۔ اگر آپ جزوی DateFormat استعمال کر رہے ہیں یعنی آپ کی درخواست میں dd-MM-yy، پھر آپ یقینی طور پر پہلے سے طے شدہ کی بجائے اس فارمیٹ کو دیکھنا چاہیں گے۔ IDE عام طور پر فارمیٹ شدہ آؤٹ پٹ تیار نہیں کرتا ہے Dateاور یہ وہ چیز ہے جو آپ کو خود کرنے کی ضرورت ہوگی، لیکن یہ اس کے قابل ہے۔ جاوا میں فارمیٹنگ کے بارے میں تفصیلات کے لیے جاوا میں ddMMyy فارمیٹ میں تاریخ پرنٹ کرنے کا طریقہ پڑھیں Date۔ آپ اس کے لیے SimpleDataFormat کلاس یا جوڈا ڈیٹ ٹائم لائبریری بھی استعمال کر سکتے ہیں۔

toString فارمیٹ کی دستاویز کرنا

اگر آپ کا طریقہ toString()فیلڈ = ویلیو کے بطور ڈیٹا آؤٹ پٹ نہیں کرتا ہے، تو آؤٹ پٹ فارمیٹ کو دستاویز کرنا اچھا خیال ہے toString، خاص طور پر اہم اشیاء جیسے ملازم یا طالب علم کے لیے۔ مثال کے طور پر، اگر toString()کلاس کا طریقہ Работник(Employee)" John-101-Sales-9846387321 " پرنٹ کرتا ہے تو ایک اچھا عمل یہ ہوگا کہ فارمیٹ کو "name-id-department-contact" کے طور پر بیان کیا جائے، لیکن اس کے ساتھ ساتھ کلائنٹ کو حاصل کرنے کی اجازت نہ دیں۔ طریقہ سے معلومات toString()، آپ کو ہمیشہ ڈیٹا کی بازیافت کے لیے مناسب طریقے فراہم کرنے چاہئیں، جیسے کہ getName(), getId()اور getContact()اسی طرح، چونکہ toString()کسی چیز کی نمائندگی سے حاصل کردہ معلومات نازک اور غلطی کا شکار ہوتی ہے، اس لیے کلائنٹ کے پاس معلومات حاصل کرنے کے لیے ہمیشہ صاف راستہ ہونا چاہیے۔

toString() کے آؤٹ پٹ کو تحریر کرنے کے لیے StringBuilder کا استعمال کریں

اگر آپ toString()جاوا میں کسی طریقہ کے لیے کوڈ لکھ رہے ہیں، تو انفرادی صفات کو شامل کرنے کے لیے StringBuilder کا استعمال کریں۔ اگر آپ ایک IDE جیسے Eclipse ، Netbeans یا IntelliJ استعمال کر رہے ہیں تو کمپوز کرنے کے لیے + آپریٹر کے بجائے StringBuilderاور طریقہ استعمال کرنا بھی ایک راستہ ہے۔ پہلے سے طے شدہ طور پر، Eclipse اور Netbeans دونوں کنکٹنیشن آپریٹر کے ساتھ تیار ہوتے ہیں۔ append()toStringtoString

@Override تشریح کا استعمال کرنا

جاوا میں طریقہ اوور رائیڈنگ کا استعمال @Overrideزبان کے بہترین طریقوں میں سے ایک ہے۔ equals()لیکن یہ اشارہ اتنا اہم نہیں ہے جتنا کہ اور طریقوں کو اوور رائیڈ کرنے کے معاملے میں ہوگا compareTo()، کیونکہ اوور رائڈنگ کے بجائے اوور لوڈنگ زیادہ باریک غلطیاں پیدا کر سکتی ہے جن کا حساب لگانا مشکل ہے۔ کسی بھی صورت میں، تشریح کا استعمال کرنا بہتر ہے @Overrride.

سرنی آبجیکٹ کو پرنٹ کرنے کے بجائے ایک صف کے مواد کو پرنٹ کرنا

جاوا میں ایک ارے ایک آبجیکٹ ہے لیکن یہ کسی طریقہ کو اوور رائڈ نہیں کرتا ہے toStringاور جب آپ کسی ارے کو پرنٹ کرتے ہیں تو ڈیفالٹ آؤٹ پٹ فارمیٹ زیادہ کارآمد نہیں ہوتا ہے کیونکہ ہم ارے کے مواد کو دیکھنا چاہتے ہیں۔ ویسے، یہ ایک اور وجہ ہے کہ حساس ڈیٹا جیسے پاس ورڈ کو ذخیرہ کرنے کے لیے char[] array String کے لیے بہتر ہے ۔ یہ دیکھنے کے لیے وقت نکالیں کہ آیا کسی صف کے مواد کو پرنٹ کرنے سے آپ کے کلائنٹس کو مدد ملتی ہے یا نہیں، اور اگر یہ سمجھ میں آتا ہے، تو پھر آبجیکٹ کے بجائے صف کے مواد کو پرنٹ کریں۔ کارکردگی کی وجوہات کی بناء پر، دیگر اشیاء کو ذخیرہ کرنے کے بجائے Collectionاس طرح کا ArrayListیا HashSet استعمال کرنا بہتر ہے ۔Array

بونس کی تجاویز

toStringجاوا میں طریقہ اوور رائیڈنگ پر کچھ مزید بونس ٹپس ۔
  1. toStringاس کی لمبائی کی بنیاد پر متعدد لائنوں میں یا ایک میں آؤٹ پٹ پرنٹ کریں ۔

  2. نمائندگی میں مکمل طور پر اہل کلاس کے نام شامل کریں toString، دوسرے لفظوں میں package.classکسی غلط فہمی سے بچنے کے لیے۔

  3. آپ کالعدم اقدار کو چھوڑ سکتے ہیں یا انہیں دکھا سکتے ہیں، لیکن انہیں دکھانا بہتر ہے۔ بعض اوقات وہ کارآمد ہوتے ہیں کیونکہ وہ یہ ظاہر کرتے ہیں کہ nullکسی واقعے کے دوران کون سا فیلڈ موجود ہے، مثال کے طور پر NullPointerException ۔

  4. کلیدی قدر کا فارمیٹ استعمال کریں، مثال کے طور پر member.name=member.value، زیادہ تر IDEs اس کی حمایت کرتے ہیں۔

  5. وراثت میں ملنے والے اراکین کو شامل کریں اگر آپ سمجھتے ہیں کہ انہیں وراثت میں ملنے والی کلاس کو ضروری معلومات فراہم کرنی چاہئیں۔

  6. بعض اوقات ایک آبجیکٹ میں بہت سے اختیاری اور مطلوبہ پیرامیٹرز ہوتے ہیں، جیسا کہ ہم نے اپنے بلڈر ٹیمپلیٹ کی مثال میں دکھایا ، جب تمام فیلڈز کو پرنٹ کرنا تقریباً ناممکن ہوتا ہے، اس صورت میں ہم صرف مطلوبہ فیلڈز پرنٹ کر سکتے ہیں، خاص طور پر چونکہ ہمارے پاس اختیاری ہیں۔

تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION