CodeGym /Blog Jawa /Acak /Metode Java toString().
John Squirrels
tingkat
San Francisco

Metode Java toString().

Diterbitake ing grup
Cukup asring nalika nggawe program, iku perlu kanggo mangerteni isi obyek. Kanggo tujuan kasebut, kelas Java Object , kelas Java paling dhasar ing hierarki kelas, nemtokake metode toString () khusus . Iki ngasilake string karakter sing nggambarake obyek kasebut. Implementasi standar metode toString() ing Jawa ngasilake output kaya iki:
package.class@hashCode
ie toString , sing ditetepake ing java.lang.Object menehi kode hash obyek ing wangun heksadesimal. Iki asring ora cetha banget lan migunani. Dadi nalika nggawe kelas anyar, iku adat kanggo override toString () supaya string bali ngemot jeneng kelas, jeneng lan nilai kabeh variabel. Overriding cara toString bener bisa bantuan karo logging lan debugging program Java, menehi informasi terkenal lan penting. Cukup, cara toString () digunakake ing Jawa kanggo entuk obyek senar sing nuduhake nilai obyek numerik. Ing tembung liyane, iku ngowahi nomer menyang senar. Yen cara njupuk jinis data prasaja minangka argumentasi, banjur obyek senar bali sing makili Nilai saka jinis data prasaja.

Tuladha metode Java toString().

Biasane, yen sampeyan nggawe kelas, saliyane toString () cara ing Jawa, sampeyan kudu ngilangi cara sing padha , hashCode lan compareTo kanggo ngerti cara nggarap obyek kasebut. Nanging saiki, ayo fokus ing toString . Umume kasus, ngirim informasi teks babagan obyek cukup prasaja. Sampeyan mung kudu ngerti apa sing dikarepake pangguna nalika logging. Ayo menehi conto lan nggawe Kelas sing nggambarake titik ing pesawat. Wis rong koordinat: koordinatX, koordinatY. Mesthine, kudu ditampilake ing layar yen pangguna takon "obyek apa iki" kaya jeneng kelas kasebut. Iki sing bakal dituduhake ing metode toString () sing ditimpa . Saiki kita nggawe kelas dhewe, kothak sawijining (koordinat), konstruktor a, getter kanggo entuk koordinat (mesthi, iku bisa ora kanggo nggawe, nanging saka sudut nggunakake bener OOP, getters laku apik). Mung kanggo ilustrasi, ayo kang uga nggawe cara sing nggawe titik anyar - jumlah saka loro liyane, lan uga override padha lan metode 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;

   }
Saiki ayo nggawe kelas tes lan metode utama. Ing kana kita entuk rong poin lan sing nomer telu, sing kita entuk saka penjumlahan rong poin. Kita nggunakake metode toString kanggo titik iki lan dicithak.
//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());
   }
}
Asil saka karya program iki ing ngisor iki:
Titik {X: 3, Y: 15}
Sampeyan ora perlu kanthi tegas nelpon metode toString , lan paling asring ora. Kanggo nelpon cara toString () , mung pass obyek sing dipengini kanggo System.out.println . Dadi kelas tes kita bakal katon kaya iki:
//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);
   }
}
Output saka program padha karo sadurunge. Apa yen kita ora ngilangi metode toString , nanging pengin nyithak obyek kasebut? Ing kasus iki, metode toString saka kelas Obyek bakal diarani. Ing conto kita, yen mbusak metode toString saka kelas Point , lan ninggalake kabeh kaya ing kelas test, kita bakal entuk asil ing ngisor iki:
Titik@12
Ing kene kita entuk kode hash saka obyek ing heksadesimal.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION