method toString()
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 41 dari 87.
Setiap class di Java mewarisi class Object, yang menyediakan beberapa method berguna. Salah satu method yang paling sering ditimpa adalah toString(), yang mengembalikan representasi string dari sebuah object.
Secara default, toString() mengembalikan nama class diikuti kode hash object, yang tidak terlalu membantu:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
Person p = new Person("Alice", 25);
System.out.println(p); // Person@15db9742Dengan meng-override toString(), kamu bisa memberikan output bermakna yang menjelaskan keadaan object:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person[name=" + name + ", age=" + age + "]";
}
}
Person p = new Person("Alice", 25);
System.out.println(p); // Person[name=Alice, age=25]method toString() dipanggil secara otomatis saat kamu mencetak object atau menggabungkannya dengan string. Ini membuat proses debug jauh lebih mudah karena kamu bisa melihat isi object dengan cepat tanpa menulis kode tambahan.
Tantangan
MudahMari kita buat sistem inventaris produk yang menampilkan informasi bermakna tentang barang menggunakan implementasi toString() khusus. Kamu akan membuat Product class yang menimpa method toString() default untuk memberikan representasi yang jelas dan mudah dibaca untuk setiap produk.
Kamu akan menyusun kodemu dalam dua file:
Product.java: Buat class yang merepresentasikan barang inventaris. Setiap Product memiliki tiga field privat:name(String),price(double), danquantity(int). Sertakan constructor yang menginisialisasi ketiga field tersebut. Timpa methodtoString()agar mengembalikan string berformat dengan format persis berikut:Product[name=X, price=Y, quantity=Z], dengan X, Y, dan Z sebagai nilai field sebenarnya. Harga ditampilkan sebagai angka biasa, tanpa pemformatan khusus.Main.java: Hidupkan class Product dengan membuat dan menampilkan produk. Kamu akan menerima tiga input: nama produk (String), harga (double), dan kuantitas (int). Buat Product dengan nilai-nilai ini, lalu cukup cetak object produk secara langsung menggunakanSystem.out.println(). Berkat methodtoString()yang kamu timpa, informasi produk berformat akan otomatis ditampilkan, bukan output default yang sulit dipahami!
Kamu akan menerima tiga input: nama produk (String), harga (double), dan kuantitas (int).
Perhatikan bahwa mencetak object secara langsung akan memanggil method toString() secara otomatis. Inilah yang membuat proses debug dan pencatatan log jauh lebih mudah dalam aplikasi nyata!
Coba sendiri
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Baca input
String name = scanner.nextLine();
double price = scanner.nextDouble();
int quantity = scanner.nextInt();
// TODO: Buat object Product dengan nilai input
// TODO: Cetak object Product secara langsung
// (Ini akan otomatis memanggil method toString() milikmu!)
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPClass dan ObjectKata Kunci thisMethodField (Atribut)Method KonstruktorOverloading KonstruktorRangkuman: Kalkulator Sederhana4Pewarisan
Pewarisan Dasar (extends)Kata Kunci superMethod Overriding (@Override)Rantai KonstruktorKelas ObjectPewarisan Tunggal dan BertingkatMengapa Tidak Ada Pewarisan Multi-KelasRangkuman: Hierarki Karyawan7method Khusus & class Object
method toString()equals() dan hashCode()method clone()compareTo() dan ComparableAntarmuka ComparatorUlasan: Pengurutan Kustom10Penanganan Exception dalam OOP
Hierarki class ExceptionException KustomError Checked vs UncheckedPola Try-with-ResourcesRekap: Pengguna Tervalidasi2Modifier Akses & Enkapsulasi
Ikhtisar Tingkat AksesMethod Getter dan SetterPenyembunyian InformasiKata Kunci finalUlasan: Pengelola Rekening Bank5Polimorfisme
Dasar method overloadingMethod overriding (Saat program berjalan)Upcasting dan downcastingOperator instanceofclass dan method abstrakUlasan: Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi vs PewarisanAgregasi vs Komposisiinner, nested, dan anonymous classEnum dan method Enumrecord (Java 16+)sealed class (Java 17+)11Pola Desain Bagian 1
Pengantar Pola DesainPola SingletonPola FactoryPola BuilderPola ObserverPola Strategy3property class dan Anggota Statis
Variabel Instance vs Statismethod StatisBlok StatisKonstanta (static final)Rangkuman: Penghitung dan Utilitas6Antarmuka & Kelas Abstrak
Pengantar AntarmukaMengimplementasikan AntarmukaImplementasi Beberapa AntarmukaDefault & Static pada AntarmukaKelas Abstrak vs AntarmukaAntarmuka FungsionalRekap: Sistem PembayaranLatihan sendiri: Compiler Java online