CodeGym /جاوا بلاگ /Random-UR /Java toString() طریقہ
John Squirrels
سطح
San Francisco

Java toString() طریقہ

گروپ میں شائع ہوا۔
اکثر پروگرام بناتے وقت، کسی چیز کے مواد کو تلاش کرنا ضروری ہوتا ہے۔ ان مقاصد کے لیے، جاوا آبجیکٹ کلاس، کلاس کے درجہ بندی میں سب سے بنیادی جاوا کلاس، ایک خاص toString() طریقہ کی وضاحت کرتی ہے۔ یہ ایک کریکٹر سٹرنگ لوٹاتا ہے جو آبجیکٹ کو بیان کرتا ہے۔ جاوا میں toString() طریقہ کا ڈیفالٹ نفاذ اس طرح آؤٹ پٹ پیدا کرتا ہے:
package.class@hashCode
یعنی toString ، جس کی تعریف java.lang.Object میں کی گئی تھی آبجیکٹ کا ہیش کوڈ ہیکساڈیسیمل شکل میں دیتا ہے۔ یہ اکثر بہت واضح اور مفید نہیں ہوتا ہے۔ اس لیے نئی کلاس بناتے وقت، toString() کو اوور رائڈ کرنے کا رواج ہے تاکہ ریٹرن اسٹرنگ میں کلاس کا نام، نام اور تمام متغیرات کی قدریں شامل ہوں۔ toString طریقہ کو درست طریقے سے اوور رائیڈ کرنے سے جاوا پروگرام کو لاگنگ اور ڈیبگ کرنے میں مدد مل سکتی ہے، یہ قیمتی اور اہم معلومات فراہم کرتا ہے۔ سیدھے الفاظ میں، toString() طریقہ جاوا میں عددی آبجیکٹ کی قدر کی نمائندگی کرنے والی سٹرنگ آبجیکٹ حاصل کرنے کے لیے استعمال کیا جاتا ہے۔ دوسرے الفاظ میں، یہ ایک عدد کو سٹرنگ میں تبدیل کرتا ہے۔ اگر طریقہ ایک سادہ ڈیٹا کی قسم کو دلیل کے طور پر لیتا ہے، تو پھر ایک سٹرنگ آبجیکٹ لوٹایا جاتا ہے جو سادہ ڈیٹا ٹائپ کی قدر کی نمائندگی کرتا ہے۔

Java toString() طریقہ کی مثال

عام طور پر اگر آپ کلاس بناتے ہیں تو جاوا میں toString() طریقہ کے علاوہ آپ کو اس کی اشیاء کے ساتھ کام کرنے کا طریقہ جاننے کے لیے equals ، hashCode اور compareTo طریقوں کو اوور رائڈ کرنا ہوگا۔ لیکن ابھی کے لیے، آئیے toString پر توجہ مرکوز کریں ۔ زیادہ تر معاملات میں، کسی چیز کے بارے میں متنی معلومات جمع کرنا کافی آسان ہے۔ آپ کو صرف یہ سمجھنے کی ضرورت ہے کہ لاگ ان کرتے وقت صارف بالکل کیا دیکھنا چاہتا ہے۔ آئیے ایک مثال دیتے ہیں اور ایک کلاس بناتے ہیں جو ہوائی جہاز پر ایک نقطہ کو بیان کرتا ہے۔ اس کے دو نقاط ہیں: کوآرڈینیٹ ایکس، کوآرڈینیٹ وائی۔ فطری طور پر، اگر کوئی صارف کلاس کے نام کی طرح "یہ کون سی چیز ہے" پوچھے تو انہیں اسکرین پر ظاہر ہونا چاہیے۔ یہ وہی ہے جسے ہم اوور رائڈ ٹو سٹرنگ () طریقہ میں ظاہر کرنے جا رہے ہیں۔ اب ہم خود کلاس بناتے ہیں، اس کے فیلڈز (کوآرڈینیٹس)، ایک کنسٹرکٹر، کوآرڈینیٹ حاصل کرنے کے لیے حاصل کرنے والے (یقینی طور پر، یہ ممکن نہیں کہ انہیں تخلیق کیا جائے، لیکن OOP کے درست استعمال کے نقطہ نظر سے، گیٹرز اچھی مشق ہیں)۔ صرف واضح کرنے کے لیے، آئیے ایک ایسا طریقہ بھی بنائیں جو ایک نیا نقطہ پیدا کرے — دوسرے دو کا مجموعہ، اور برابر اور ہیش کوڈ کے طریقوں کو بھی اوور رائیڈ کریں۔
public class Point implements Comparable<Point> {
   private final int coordinateX;
   private final int coordinateY;

   public Point(final int coordinateX, final int coordinateY) {
       this.coordinateX = coordinateX;
       this.coordinateY = coordinateY;
   }

   public int getX() {
       return coordinateX;
   }

   public int getY() {
       return coordinateY;
   }

   public Point sum(final Point that) {
       return new Point(coordinateX + that.coordinateX, coordinateY + that.coordinateY);
   }

// here we override toString with coordinates and class name
   @Override
   public String toString() {
       return "Point{"
               + "X: " + getX()
               + ", Y: " + getY()
               +  '}';
   }

   @Override
   public boolean equals(Object o) {
       if (o == this) {
           return true;
       }
       if (o == null || o.getClass() != this.getClass()) {
           return false;
       }

   @Override
   public int hashCode() {
       return coordinateX + coordinateY;

   }
اب آئیے ایک ٹیسٹنگ کلاس اور ایک اہم طریقہ بنائیں۔ وہاں ہمیں دو پوائنٹس ملے ہیں اور تیسرا، جو ہم دو پوائنٹس کے مجموعے سے حاصل کر رہے ہیں۔ ہم اس مقام پر toString طریقہ کا اطلاق کرتے ہیں اور اسے پرنٹ کرتے ہیں۔
//toString() method demo
public class Test {
   public static void main(String[] args) {
       Point myPoint1 = new Point(5,7);
       Point myPoint2 = new Point(-2, 8);
       Point mySum = myPoint1.sum(myPoint2);
     //call toString explicitly
       System.out.println(mySum.toString());
   }
}
اس پروگرام کے کام کا نتیجہ ذیل میں ہے:
پوائنٹ{X: 3، Y: 15}
آپ کو حقیقت میں toString طریقہ کو واضح طور پر کال کرنے کی ضرورت نہیں ہے ، اور اکثر ایسا نہیں ہوتا ہے۔ toString() طریقہ کو کال کرنے کے لیے ، صرف مطلوبہ آبجیکٹ کو System.out.println پر منتقل کریں ۔ تو ہماری ٹیسٹ کلاس اس طرح نظر آئے گی:
//toString method demo
public class Test {
   public static void main(String[] args) {
       Point myPoint1 = new Point(5,7);
       Point myPoint2 = new Point(-2, 8);
       Point mySum = myPoint1.sum(myPoint2);
       //call toString implicitly
       System.out.println(mySum);
   }
}
پروگرام کا آؤٹ پٹ پہلے جیسا ہی ہے۔ کیا ہوگا اگر ہم toString طریقہ کو اوور رائڈ نہیں کرتے ہیں ، لیکن آبجیکٹ کو پرنٹ کرنا چاہتے ہیں؟ اس صورت میں، آبجیکٹ کلاس کے toString طریقہ کو بلایا جائے گا۔ ہماری مثال میں، اگر ہم اپنی پوائنٹ کلاس سے toString طریقہ کو ہٹا دیں ، اور ہر چیز کو جیسا کہ یہ ٹیسٹ کلاس میں ہے چھوڑ دیں، ہمیں درج ذیل نتیجہ ملے گا:
پوائنٹ@12
یہاں ہمیں ہیکساڈیسیمل میں آبجیکٹ کا ہیش کوڈ ملا ہے۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION