Pemrograman Lanjut Constructor § Aryo Pinandito, ST, M.MT
Team Teaching Pemrograman Lanjut
Objectives § Mengetahui dan memahami constructor § Mampu mendeklarasikan dan menggunakan
constructor untuk memastikan bahwa suatu data dalam objek telah diinisialisasi ketika object dibangun. § Mengetahui dan memahami constructor overload
Constructor § Constructor merupakan method yang spesial. § Constructor dapat digunakan untuk melakukan
prosedur atau inisialisasi awal dalam membangun suatu objek.
§ Biasanya constructor digunakan untuk
menginisialisasi nilai default atribut suatu objek ketika objek tersebut diinstansiasi
Mengapa Constructor Spesial? § Constructors harus memiliki nama yang sama dengan
nama class. § Constructors TIDAK memiliki return type, bahkan tipe data void sekalipun. § Constructors secara otomatis akan dipanggil atau dijalankan menggunakan operator new ketika sebuah object diinstansiasi. § Constructors dapat digunakan untuk menginisialisasi nilai atribut suatu object dari class ketika object pertama kali diinstansiasi
Constructor § class yang tidak dideklarasikan constructors di
dalamnya, sebuah no-arg constructor (constructor yang tidak memiliki argumen) secara implisit dideklarasikan dalam class tersebut dengan empty body § Constructor tersebut, disebut dengan default constructor, yang disediakan secara otomatis oleh Java hanya jika ketika tidak ada constructor yang dideklarasikan secara eksplisit dalam class
Constructor Overload § Sebuah constructor dapat di-overload dengan
constructor lainnya dengan memberikan: § Perbedaan jumlah argumen § Perbedaan tipe data argumen § Perbedaan jumlah dan tipe data argumen
Constructor Overload public class Circle { public int radius; public Circle() { this.radius = 10;
Constructor
} public Circle(int radius) { this.radius = radius;
Constructor
} public void Circle(float radius) { this.radius = (int) radius; } }
Not a Constructor, why?
Constructor Overload § Contoh: Class Circle § new Circle() membuat sebuah object Circle dari class Circle
menggunakan constructor yang pertama yang didefinisikan dalam class Circle, § new Circle(5) membuat sebuah object menggunakan constructor yang kedua yang didefinisikan dalam class Circle. Caution : § It is a common mistake to put the void keyword in front of a constructor. For example, public void Circle() {} § In this case, Circle() is a method, not a constructor.
Keyword this dalam Constructor § Keyword this dapat digunakan untuk memanggil
constructor lain dari dalam sebuah constructor. § Pemanggilan constructor dengan keyword this dapat dilakukan dari dalam constructor dengan cara: this(argumen); § Jumlah dan tipe argumen yang diberikan sebagai parameter pemanggilan constructor harus sesuai dengan jumlah dan tipe argumen constructor yang dipanggil. § Tidak diperkenankan ada dua atau lebih constructor yang saling memanggil satu sama lain, karena akan tercipta sebuah perulangan.
Contoh Pemanggilan Constructor dari Constructor public class Mobil { public int speed = 0; public String sound = "";
Mobil ferrari = new Mobil(); // sound = "Beep" // speed = 10;
public Mobil() { this(10);
Pemanggilan constructor dengan tipe argumen int
this.sound = "Beep"; } public Mobil(int speed) { this.speed = speed; } }
Constructor ini dipanggil dari constructor Mobil()
Constructor § Haruskah ada constructor untuk setiap class? § Tidak harus, § Namun keberadaan constructor menjadikan class dapat lebih mudah diinisialisasi dengan beberapa nilai awal yang berguna setiap kali object dibuat.
Questions?
Tugas § Tambahkan dua buah constructor pada tiap-tiap
class
yang telah dibuat pada tugas sebelumnya. § Lengkapi diagram class yang telah dibuat dengan method constructor-nya § Constructor ditujukan untuk menginisialisasi nilai awal pada atribut yang dimiliki. § Kirimkan gambar diagram class dalam format file PNG dan file-file .java untuk tiap class yang dibuat melalui email dengan subject: Tugas II Constructor
§ Paling lambat hari
ini, 22:00 WIB