- Visual Studio 2017 Community.
3. Materi Pembelajaran.
Konstruktor
Didalam kelas apa yang akan terjadi jika telah diakses metodenya padahal belum
memiliki nilai yang akan diset? dan apa yang akan terjadi jika salah satu atribut yang ada
diakses padahal belum pernah diberikan nilai awal?
Untuk menghindari itu, kelas mempunyai metode khusus yang disebut konstruktor,
dimana secara otomatis dijalankan (called) setiap kali objek dari kelas tersebut dibuat.
Didalam konstruktor inilah nanti kelas memungkinkan untuk melakukan inisialisasi
terhadap atributnya atau mengalokasikan penyimpanan. Konstruktor dinyatakan sama
seperti halnya metode. tetapi konstruktor dinyatakan dengan nama yang sama persis seperti
nama kelasnya, tanpa tipe kembalian, dan tanpa kata kunci void. Pada umumnya
konstruktor memiliki akses public.
Paramaterless Konstruktor.
Disebut juga sebagai konstruktor default. Konstruktor ini otomatis ada meskipun
tidak dideklarasikan atau ditulis. Konstruktor jenis ini tidak memiliki parameter apapun.
Dan pada umumnya konstruktor ini dibuat dalam keadaan kosong tanpa ada statemen
apapun. Oleh sebab itulah programmer tidak menuliskannya.
Didalam konstruktor atribut-atribut dan property dapat diberikan nilai awal (inisialisasi)
dan objek-objek dapat langsung diinstansikan agar tidak terjadi pesan kesalahan “Null
Reference Exception”. Atribut dan Properti yang memiliki status readonly hanya bisa
diinisialisasikan sekali dan hanya bisa dilakukan didalam konstruktor.
Parameterized Konstruktor
Konstruktor ini memiliki perbedaan yang mendasar. Yaitu dalam pembuatannya
ditambahkan beberapa parameter. Parameter yang ditambahkan disesuaikan dengan
kebutuhan dari class itu sendiri.
Parameter yang diberikan dapat digunakan untuk melakukan set-up pada atribut
yang ada didalam class. Hal ini dilakukan sebab atribut dalam class memiliki akses default
private. Atribut yang ada pada class tidak terlihat diluar lingkungan class apabila aksesnya
private. Maka serah terima nilai dari luar class menuju private atribut class dapat
dilewatkan melalui konstruktor jenis ini.
Konstruktor jenis ini dapat di-overload. Artinya tidak ada batasan jumlah yang bisa dibuat,
selama tipe dari parameter yang dipasang tidak identik sama. Apabila konstruktor jenis ini
dibuat maka secara otomatis akan menimpa konstruktor default yang tidak dibuat. Jika
ingin menjaga konstruktor default tetap ada, maka konstruktor default harus dibuat.
Private Konstruktor.
Konstruktor pada umumnya dibuat dengan akses public. Hal ini dilakukan
sebagaimana kegunaan dari konstruktor, yaitu melakukan instansi kedalam objek. Namun
dalam beberapa kondisi konstruktor dinyatakan dengan akses private. Ketika konstruktor
dinyatakan private. Maka konstruktor ini tidak dapat diakses diluar class. Namun dapat
dibuat sebagai konstruktor berantai.
Pada gambar diatas dapat dilihat sebuah konstruktor dinyatakan dengan akses private, lalu
kemudian dirantaikan kedalam konstruktor lain yang memiliki akses private. Tidak banyak
yang dapat dipelajari dan dipahami dari konstruktor jenis ini. Konstruktor jenis ini biasanya
digunakan pada class yang hanya memiliki atribut-atribut dengan nilai statis (static atribut).
Beberapa design-pattern ada juga yang menggunakan private konstruktor.
Destruktor.
Destruktor memiliki fungsi yang berlawanan dari konstruktor. Destruktor
bertanggung jawab untuk melakukam pembersihan yang diperlukan ketika daur hidup dari
kelas berakhir. setiap kelas yang didefinisikan dan dan telah digunakan maka harus
dilakukan pembersihan terhadap memori dinamis yang telah digunakan.
Destruktor mempunyai fungsi yang sangat serupa dengan konstruktor yaitu
menggunakan nama kelas sebagai namanya sendiri, tidak membutuhkan argument, tipe
kembalian, bahkan tidak memerlukan kata kunci void. perbedaan yang jelas antara
destruktor dan konstruktor, penulisan destruktor harus diawali dengan tanda tilde (~).
Disposable Interface.
Didalam teknologi bahasa Csharp, terdapat sebuah interface yang dapat digunakan
untuk membersihkan sebuah objek yang dibuat. Interface ini dikenal dengan nama
IDisposable.
Pattern ini menggunakan destruktor sebagai inti prosesnya. Ketika sebuah class
menggunakan pattern ini, maka objek yang tercipta dapat dibuat seperti plug & play.
Dengan menggunakan perintah using statemen.
Berikut contoh lengkap dari class yang memiliki konstruktor dan destruktor :
Comments
Post a Comment