PROGRAMMING #9 : Java Programming for Programmer - Classes and Objects (PART 4) | [BAHASA]

in #indonesia6 years ago

RESOURCES TO LEARN JAVA

Pada artikel ini merupakan lanjutan dari artikel sebelumnya yaitu Java Programming for Programmer - Classes and Objects (PART 3). Masih dalam topik yang sama, dimana saya akan membahas mengenai kelas dan objek. Langsung saja pada pokok pembahasan berikut ini.

Studi Kasus Kelas Waktu: Konstruktor Ter-overload

Seperti yang anda ketahui, anda dapat mendeklarasikan konstruktor anda sendiri untuk menspesifikasi bagaimana objek-objek suatu kelas harus diinisialisasi. Selanjutnya, akan didemonstrasikan suatu kelas yang memiliki beberapa konstruktor ter-overload yang memungkinkan objek-objek kelas tersebut untuk diinisialisasi dengan berbagai cara. Untuk meng-overload konstruktor, anda cukup menyediakan beberapa deklarasi konstruktor dengan sidik yang berbeda-beda.

Kelas Waktu2 dengan Beberapa Konstruktor Ter-overload

Konstruktor default kelas Waktu1 (kode 1.1) menginisialisasi jam, menit, dan detik dengan nilai-nilai default 0. Konstruktor default tidak memungkinkan klien kelas untuk menginisialisasi waktu dengan nilai-nilai spesifik bukan nol. Kelas Waktu2 (kode 1.4) memuat lima konstruktor ter-overload yang menyediakan beberapa cara dalam menginisialisasi objek-objek kelas Waktu2. Setiap konstruktor menginisialisasi objek dengan cara yang konsisten. Pada program ini, empat konstruktor memanggil konstruktor kelima, yang pada gilirannya akan memanggil metode setWaktu untuk memastikan bahwa nilai yang disediakan untuk jam berada dalam rentang 0 sampai 23, dan nilai-nilai untuk menit dan detik masing-masing berada dalam rentang 0 sampai 59. Penyusun akan memanggil konstruktor yang sesuai dengan mencocokkan jumlah, tipe, dan urutan argumen-argumen yang dispesifikasi di dalam pemanggilan konstruktor dengan jumlah tipe, dan urutan parameter-parameter yang dispesifikasi pada tiap deklarasi konstruktor. Kelas Waktu2 juga menyediakan beberapa metode set dan get untuk tiap variabel contoh.

Kode 1.5

Konstruktor Kelas Waktu2

Baris 12-15 mendeklarasikan apa yang dinamakan dengan konstruktor tanpa argumen, yang dipanggil tanpa argumen. Begitu anda mendeklarasikan sembarang konstruktor di dalam suatu kelas, penyusun tidak akan menyediakan konstruktor default bagi kelas tersebut. Konstruktor tanpa argumen ini memastikan bahwa pengguna atau klien kelas Waktu2 dapat menciptakan objek-objek Waktu2 dengan nilai-nilai default. Konstruktor semacam itu sebenarnya hanya menginisialisasi objek-objek yang dispesifikasi di dalam tubuh konstruktor. Di dalam tubuh, diperkenalkan penggunaan  referensi this yang hanya diizinkan sebagai pernyataan pertama di dalam tubuh suatu konstruktor. Baris 14 menggunakan this dalam sintaksis pemanggilan metode untuk memanggil konstruktor Waktu2 yang memerlukan tiga parameter (baris 30-33) dengan nilai-nilai 0 untuk jam, menit, dan detik. Penggunaan referensi this seperti yang ditunjukkan disini merupakan cara yang populer dalam mendaur ulang kode inisialisasi yang disediakan oleh konstruktor lain dari kelas tersebut. Sintaksis ini digunakan di dalam empat dari lima konstruktor Waktu2 untuk membuat kelas lebih mudah dimodifikasikan dan dipelihara. Jika anda perlu mengubah bagaimana objek-objek Waktu2 diinisialisasi, maka hanya satu konstruktor saja yang perlu diubah.

Baris 18-21 mendeklarasikan suatu konstruktor Waktu2 dengan satu parameter int yang merepresentasikan jam, yang dilewatkan dengan 0 untuk menit dan detik kepada konstruktor pada baris 30-33. Baris 24-27 mendeklarasikan suatu konstruktor Waktu2 yang menerima dua parameter int yang merepresentasikan jam dan menit, yang dilewatkan 0 untuk detik kepada konstruktor pada baris 30-33. Sama seperti konstruktor tanpa argumen, setiap konstruktor memanggil konstruktor pada baris 30-33 untuk meminimalkan duplikasi kode. Baris 30-33 mendeklarasikan konstruktor Waktu2 yang menerima tiga parameter int yang merepresentasikan jam, menit, dan detik. Konstruktor ini memanggil setWaktu untuk menginisialisasi variabel-variabel contoh.

Baris 36-40 mendeklarasikan suatu konstruktor Waktu2 yang menerima suatu referensi kepada objek Waktu2 yang lain. Pada kasus ini, nilai-nilai dari argumen Waktu2 dilewatkan kepada konstruktor tiga argumen pada baris 30-33 untuk menginisialisasi jam, menit, dan detik. Baris 39 bisa saja mengakses secara langsung nilai-nilai jam, menit, dan detik dari argumen konstruktor "Waktu", dengan ekspresi waktu.jam, waktu.menit, dan waktu.detik, meskipun jam, menit dan detik di deklarasikan sebagai variabel private dari kelas Waktu2. Hal ini karena relasi khusus antara objek sesama kelas. Akan dilihat sebentar lagi mengapa lebih disukai menggunakan metode-metode get untuk melakukan hal ini.

To be continued...

Regards alfarisi,


INDONESIAN STEEMIT COMMUNITY

Sort:  

Kembalinya senior kedunia steemit, seakan lengkaplah semua postingan, hehehe. Gmn sudah selesai kuliahnya?

Hahahah tidak ada yg namanya senior maupun junior pak. Kita semua kan sama. Alhamdulillah sekarang lagi nyusun tugas akhirnya pak. Saya minta do'a nya yaa heheheh @berkat

InsyaAllah akan kami doian.

Terima kasih banyak pak @berkat

Coin Marketplace

STEEM 0.20
TRX 0.12
JST 0.027
BTC 64278.56
ETH 3504.01
USDT 1.00
SBD 2.54