Semua class di dalam Delphi adalah turunan dari TObject. Jadi definisi tipe class seperti

Memiliki arti yang sama dengan

Constructor dan destructor

Constructor adalah method khusus yang berguna untuk pembuatan obyek. Biasanya constructor diberi nama Create. Pembuatan obyek yang sudah biasa kita lakukan adalah pemanggilan terhadap constructor yang telah didefinisikan di dalam TObject. Dengan demikian setiap class akan mempunyai method Create.

Destructor adalah kebalikan dari constructor. Destructor adalah method khusus yang dipanggil untuk membuang obyek. Saat kita memanggil method Free, maka destructor akan dipanggil. Destructor biasanya diberi nama Destroy.

Seperti pada method-method lain, constructor dan destructor juga bisa dibuat supaya memiliki implementasi yang berbeda dengan leluhurnya. Destroy bersifat virtual. Jadi Anda harus menambahkan override jika akan membuat Destroy pada class buatan Anda. Sedangkan Create bersifat static (tanpa virtual). Jadi jika Anda membuat class turunan langsung dari TObject, maka Anda tidak bisa menambahkan override untuk Create yang Anda definisikan sendiri. Akan tetapi pada class-class dibawahnya, banyak yang telah menerapkan Create sebagai virtual. Jadi untuk membuat turunan dari class selain TObject Anda perlu mencoba untuk menambahkan override pada Create yang Anda buat. Jika Create pada class tersebut ternyata static, maka akan muncul pesan kesalahan pada penambahan override tersebut.

Cara membuat constructor dan destructor

Membuat constructor dan destructor pada dasarnya sama dengan membuat prosedur biasa. Perbedaannya hanya terletak pada penggantian kata procedure menjadi constructor atau destructor.

Pada constructor, yang dilakukan pertama kali biasanya adalah memanggil constructor milik leluhurnya, baru melakukan proses-proses lain yang dibutuhkan. Untuk memanggil method yang diwariskan oleh leluhur, kita menggunakan kata inherited di depan nama method yang dipanggil. Jadi, biasanya Create akan terlihat misalnya seperti:

Pada destructor, pemanggilan terhadap destructor leluhurnya biasanya dilakukan pada beris terakhir sebelum end. Contohnya seperti:

Tujuan pembuatan constructor dan destructor

Constructor dibuat untuk membuat inisialisasi terhadap obyek. Sering kali kita membutuhkan agar sebuah obyek yang dibuat memiliki nilai-nilai tertentu pada beberapa fieldnya. Pemberian nilai awal ini bisa dilakukan di dalam constructor. Jika class yang kita buat tersusun dari obyek-obyek lain, maka obyek-obyek tersebut harus dibuat sebelum bisa digunakan. Ingat bahwa class selalu bertipe pointer sehingga deklarasi obyek tidak serta-merta membuat obyeknya. Pembuatan obyek-obyek ini bisa dilakukan di dalam constructor.

Jika class Anda membuat obyek-obyek lain, maka class Anda juga bertanggung jawab membuang obyek-obyek tersebut saat class Anda akan dibuang. Pembuangan obyek-obyek tersebut bisa dilakukan di dalam destructor.

Contoh program dengan constructor dan destructor

Jika program dijalankan, hasilnya akan tampak seperti:

Time limit is exhausted. Please reload the CAPTCHA.