Kelas dan Objek · Pelajaran 3 dari 10
Konstruktor dan this
8 menit baca · BelajarCode
Mengisi atribut satu per satu setelah new merepotkan dan rawan lupa. Konstruktor adalah metode khusus yang dijalankan otomatis saat objek dibuat. Namanya sama dengan nama kelas dan tidak punya tipe kembalian.
1class Buku {2 String judul;3 String penulis;4 int halaman;56 Buku(String judul, String penulis, int halaman) {7 this.judul = judul;8 this.penulis = penulis;9 this.halaman = halaman;10 }1112 Buku(String judul, String penulis) {13 this(judul, penulis, 0);14 }1516 String info() {17 String hal = halaman > 0 ? halaman + " halaman" : "jumlah halaman belum diketahui";18 return judul + " oleh " + penulis + ", " + hal;19 }20}2122public class Main {23 public static void main(String[] args) {24 Buku a = new Buku("Pemrograman Java", "Tim Penulis", 320);25 Buku b = new Buku("Struktur Data", "Tim Penulis");26 System.out.println(a.info());27 System.out.println(b.info());28 }29}Pemrograman Java oleh Tim Penulis, 320 halaman Struktur Data oleh Tim Penulis, jumlah halaman belum diketahui
thismenunjuk objek yang sedang dibuat.this.judul = judul;membedakan atributjuduldari parameterjudul.- Kelas boleh punya beberapa konstruktor dengan parameter berbeda. Ini disebut overloading.
this(judul, penulis, 0);memanggil konstruktor lain di kelas yang sama, supaya kode pengisian tidak ditulis ulang.
Konstruktor bawaan
Jika kelas tidak punya konstruktor sama sekali, Java memberikan konstruktor kosong secara otomatis. Begitu kamu menulis satu konstruktor saja, konstruktor kosong itu tidak ada lagi, kecuali kamu menuliskannya sendiri.
Cek pemahaman
Apa yang terjadi jika parameter konstruktor bernama sama dengan atribut, dan kamu menulis judul = judul; tanpa this?
Latihan
Kelas Rekening
Buat kelas Rekening dengan atribut pemilik dan saldo. Sediakan konstruktor dengan dua parameter, dan konstruktor dengan satu parameter (pemilik) yang membuat saldo awal 0 dengan memanggil konstruktor pertama.
Pembahasan
1class Rekening {2 String pemilik;3 long saldo;45 Rekening(String pemilik, long saldo) {6 this.pemilik = pemilik;7 this.saldo = saldo;8 }910 Rekening(String pemilik) {11 this(pemilik, 0);12 }1314 String info() {15 return pemilik + ": Rp" + saldo;16 }17}1819public class Main {20 public static void main(String[] args) {21 System.out.println(new Rekening("Sinta", 250000).info());22 System.out.println(new Rekening("Fajar").info());23 }24}Sinta: Rp250000 Fajar: Rp0
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Java online.