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

Java toString() طريقو

گروپ ۾ شايع ٿيل
گهڻو ڪري پروگرام ٺاهيندي، ڪنهن شئي جي مواد کي ڳولڻ ضروري آهي. انهن مقصدن لاءِ، جاوا آبجیکٹ ڪلاس، سڀ کان وڌيڪ بنيادي جاوا ڪلاس درجي جي درجي بندي ۾، هڪ خاص toString() طريقو بيان ڪري ٿو. اهو هڪ ڪردار اسٽرنگ کي واپس ڏئي ٿو جيڪو اعتراض کي بيان ڪري ٿو. جاوا ۾ toString() طريقي جو ڊفالٽ عمل درآمد ھن طرح پيدا ڪري ٿو:
package.class@hashCode
يعني toString ، جنهن جي وضاحت ڪئي وئي آهي java.lang.Object اعتراض جو هيش ڪوڊ ڏئي ٿو هيڪساڊيڪل فارم ۾. اهو اڪثر ڪري بلڪل واضح ۽ مفيد نه آهي. تنهن ڪري جڏهن نئون ڪلاس ٺاهيو وڃي، اهو رواج آهي ته اوور رائڊ ڪيو وڃي toString() ته جيئن واپسي واري اسٽرنگ ۾ سڀني متغيرن جا نالا، نالا ۽ قيمتون شامل هجن. toString طريقي کي درست ڪرڻ سان جاوا پروگرام کي لاگنگ ۽ ڊيبگ ڪرڻ ۾ مدد ملندي، اها قيمتي ۽ اهم معلومات مهيا ڪري ٿي. آسان لفظ ۾، toString() طريقو جاوا ۾ استعمال ڪيو ويندو آھي ھڪڙي اسٽرنگ اعتراض حاصل ڪرڻ لاءِ جيڪو ھڪڙي عددي اعتراض جي قيمت جي نمائندگي ڪري ٿو. ٻين لفظن ۾، اهو هڪ انگ کي اسٽرنگ ۾ تبديل ڪري ٿو. جيڪڏهن طريقو هڪ سادي ڊيٽا جي قسم کي هڪ دليل طور وٺندو آهي، پوء هڪ اسٽرنگ اعتراض واپس ڪيو ويندو آهي جيڪو عام ڊيٽا جي قسم جي قيمت کي نمائندگي ڪري ٿو.

جاوا toString() طريقو جو مثال

عام طور تي جيڪڏهن توهان هڪ ڪلاس ٺاهيندا آهيو، جاوا ۾ toString() طريقي کان علاوه توهان کي اوور رائڊ ڪرڻ جي ضرورت آهي equals , hashCode ۽ compareTo طريقن کي ڄاڻڻ لاءِ ته ان جي شين سان ڪيئن ڪم ڪجي. پر هينئر لاءِ، اچو ته ڌيان ڏيون toString . اڪثر ڪيسن ۾، هڪ اعتراض بابت متن جي معلومات جمع ڪرڻ بلڪل سادو آهي. توهان کي صرف اهو سمجهڻ جي ضرورت آهي ته لاگ ان ٿيڻ وقت صارف ڇا ڏسڻ چاهيندو. اچو ته هڪ مثال ڏيو ۽ هڪ ڪلاس ٺاهيو جيڪو جهاز تي هڪ نقطو بيان ڪري ٿو. ان ۾ ٻه همراه آهن: coordinateX، coordinateY. قدرتي طور تي، انهن کي اسڪرين تي ظاهر ٿيڻ گهرجي جيڪڏهن ڪو صارف پڇي ته "هي ڪهڙي شئي آهي" صرف ڪلاس جي نالي وانگر. اھو اھو آھي جيڪو اسان ڏيکارڻ وارا آھيون overridden toString() طريقي ۾. ھاڻي اسان ڪلاس پاڻ ٺاھيون ٿا، ان جا شعبا (ڪوآرڊينيٽس)، ھڪ ٺاھيندڙ، ڪوآرڊينيٽس حاصل ڪرڻ لاءِ گيٽر (يقيناً، انھن کي ٺاھڻ ممڪن نه آھي، پر OOP جي صحيح استعمال جي نقطي نظر کان، Getters سٺو عمل آھن). صرف واضع ڪرڻ لاءِ، اچو ته ھڪڙو طريقو پڻ ٺاھيون جيڪو ھڪڙو نئون نقطو ٺاھي ٿو - ٻين ٻن جو مجموعو، ۽ گڏوگڏ برابر ۽ hashCode طريقن کي اوور رائڊ ڪريو.
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