Berikut ini adalah contoh program Java yang mendefinisikan kelas TitikKoordinat. Koordinat adalah bilangan yang menunjukkan lokasi suatu titik dalam garis. Garis yang dimaksud adalah garis yang sejajar dengan sumbu x (absis) dan sumbu y (ordinat). Hasil kompilasi TitikKoordinat.class disimpan di direktori c:\filejava\javaapp\kelas\koordinat.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | // Nama file : TitikKoordinat.java // Mendefinisikan kelas TitikKoordinat // Meletakkan kelas ke paket package koordinat; // Deklarasi kelas public class TitikKoordinat { // Deklarasi variabel kelas (data field) private int x; private int y; // Konstruktor tanpa argumen (parameter) public TitikKoordinat() { // Secara implisit memanggil konstruktor tanpa argumen // dari kelas Obyect. } // konstruktor kedua public TitikKoordinat(int x, int y) { this.x = x; this.y = y; } // Accessor sumbu x public int getX() { return x; } // Mutator sumbu x public void setX(int x) { this.x = x; } // Accessor sumbu y public int get() { return y; } // Mutator sumbu y public void setY(int y) { this.y = y; } } |
Kelas TitikKoordinat secara implisit adalah turunan kelas Object. Karena turunan kelas Object, kelas TitikKoordinat mewarisi semua metoda yang dimiliki kelas Object termasuk metoda toString. Kelas TitikKoordinat mendeklarasikan dua variabel kelas yaitu x dan y. Saat obyek dari kelas TitikKoordinat dikonstruksi, dua data field x dan y diberi nilai integer default 0.
Untuk mendemonstrasikan atau menguji metoda toString default yang diwarisi dari kelas Object, Anda dapat mendeklarasikan kelas main DemoTitikKoordinat1 seperti program berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | // Mengimpor kelas import koordinat.TitikKoordinat; import javax.swing.JOptionPane; // Deklarasi kelas public class DemoTitikKoordinat1 { // Metoda main public static void main(String[ ] args) { String str; //Membuat obyek dari kelas TitikKoordinat TitikKoordinat titik = new TitikKoordinat(3, 7); // Menampilkan hasil metoda toString() str = "Menggunakan metoda toString() default dari kelas Object."; str += "\nHasil metoda toString : " + titik; JOptionPane.showMessageDialog(null, str, "Metoda toString()", JOptionPane.INFORMATION_MESSAGE); // Mengakhiri aplikasi System.exit(0); } } |
Baris nomor 18 adalah pernyataan untuk mencetak obyek TitikKoordinat yang diwakili oleh variabel acuan titik yang mengacu ke obyek dari kelas TitikKoordinat. Secara internal, pernyataan tersebut sama dengan memanggil metoda toString kelas Object. Panggilan ke metoda toString menghasilkan nilai string koordinat.TitikKoordinat@934b1
.
Format string ini terdiri dari nama kelas TitikKoordinat, @ dan versi nilai hexadecimal dari hashcode obyek. Nilai default metoda hashCode secara khusus diimplementasikan dengan mengkonversi nilai alamat memori obyek ke nilai integer. Bila sebuah kelas yang digunakan diimpor dari suatu paket, maka nama paket juga disertakan (koordinat).

Dapat diperhatikan bahwa string yang dihasilkan kurang deskriptif dan tidak menggambarkan obyek dari kelas TitikKoordinat itu sendiri. Untuk menghasilkan nilai string yang lebih mempunyai arti, Anda perlu mendeklarasikan ulang metoda toString di kelas TitikKoordinat dengan nama, tipe nilai yang dikembalikan dan parameter, baik jumlah, urutan maupun tipe data yang sama.
Berikut ini adalah kode program kelas TitikKoordinat yang mendeklarasikan ulang metoda toString. Metoda toString dari kelas Object ini dideklarasikan ulang sama persis di kelas TitikKoordinat dan dikenal dengan istilah overriding.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | // Nama file : TitikKoordinat.java // Mendefinisikan kelas TitikKoordinat // Meletakkan kelas ke paket package koordinat; // Deklarasi kelas public class TitikKoordinat { // Deklarasi variabel kelas (data field) private int x; private int y; // Konstruktor tanpa argumen (parameter) public TitikKoordinat() { // Secara implisit memanggil konstruktor tanpa argumen // dari kelas Object. } // konstruktor kedua public TitikKoordinat(int x, int y) { this.x = x; this.y = y; } // Accessor sumbu x public int getX() { return x; } // Mutator sumbu x public void setX(int x) { this.x = x; } // Accessor sumbu y public int getY() { return y; } // Mutator sumbu y public void setY(int y) { this.y = y; } // Overriding metoda toString() dari kelas Object // Menghasilkan nilai string yang menggambarkan kelas TitikKoordinat public String toString() { return "[" + x + ", " + y + "]"; } } |
String yang dikembalikan atau dihasilkan oleh metoda toString yang diwarisi secara default dari kelas Object kurang deskriptif. Setiap subclass dapat mendeklarasikan ulang metoda tersebut dan memberi implementasi berbeda yang lebih menggambarkan obyek subclass.
Baris nomor 48 – 50 adalah deklarasi ulang metoda toString di kelas TitikKoordinat (method overriding). Kelas TitikKoordinat menggunakan metoda toString yang dideklarasikan sendiri untuk lebih memberi kejelasan obyek kelas TitikKoordinat, sedangkan metoda toString di superclass diabaikan. Bila diperlukan, hendaknya kelas turunan mendeklarasikan ulang metoda yang dimiliki oleh superclass.
Untuk mendemonstrasikan atau menguji metoda toString yang ada di kelas TitikKoordinat, Anda dapat mendeklarasikan kelas main DemoTitikKoordinat2. Berikut ini adalah contoh program dan hasil eksekusinya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // Nama file : DemoTitikKoordinat2.java // Mendemonstrasikan kelas TitikKoordinat yang telah dimodifikasi // Mengimpor kelas import javax.swing.JOptionPane; import koordinat.TitikKoordinat; // Deklarasi kelas DemoTitikKoordinat2 public class DemoTitikKoordinat2 { // Metoda main public static void main(String[ ] args) { String str; // Membuat objek dari kelas TitikKoordinat TitikKoordinat titik2 = new TitikKoordinat(7, 10); str = "Menggunakan Kelas TitikKoordinat"; str += "\nKoordinat x : " + titik2.getX(); str += "\nKoordinat y : " + titik2.getY(); str += "\nTitik koordinat : " + titik2; // Titik koordinat dimodifikasi str += "\n\nMemodifikasi koordinat : x = 12 dan y = 15"; titik2.setX(12); titik2.setY(15); str += "\nKoordinat x : " + titik2.getX(); str += "\nKoordinat y : " + titik2.getY(); str += "\nTitik koordinat : " + titik2; // Menampilkan hasil JOptionPane.showMessageDialog(null, str, "Kelas TitikKoordinat", JOptionPane.INFORMATION_MESSAGE); // Mengakhiri aplikasi berpenampilan GUI System.exit(0); } } |

Baris nomor 22 dan 30 adalah pernyataan untuk menggabungkan string “Titik koordinat” dengan string hasil representasi obyek dari kelas TitikKoordinat yang diacu variabel titik2. Anda hanya perlu menyertakan variabel acuan titik2 untuk menghasilkan string yang merupakan representasi obyek dari kelas TitikKoordinat atau Anda dapat menggunakan titik2.toString untuk menghasilkan nilai string yang sama.