Apa itu Upcasting dan Downcasting di Jawa? Penjelasan Sederhana

Diterbitkan: 2021-01-22

Daftar isi

Upcasting dan Downcasting di Jawa

Typecasting di Java mengacu pada prosedur yang melibatkan konversi satu tipe data ke tipe data lainnya. Ini dapat dilakukan baik secara otomatis maupun manual. Sementara seorang programmer harus melakukan konversi manual sendiri, compiler digunakan untuk proses otomatis. Downcasting dan upcasting pada dasarnya adalah dua jenis objek typecasting.

Objek anak dan orang tua adalah dua jenis objek yang berbeda. Sekarang, ada dua cara dengan bantuan objek yang dapat diinisialisasi, selanjutnya juga mewarisi properti yang dimiliki kelas anak dan induk. Cara-cara tersebut antara lain:

  • Anak c = Anak baru (): Mengakses semua anggota yang berada di bawah kelas anak dan induk
  • Parent p = new Child(): Mengakses anggota kelas induk saja, serta metode yang telah diganti di kelas anak

Pada dasarnya, casting tipe Parent to Child dikenal sebagai Upcasting, sedangkan casting tipe Child to Parent disebut sebagai Downcasting.

Sistem typecasting digunakan untuk memastikan bahwa variabel diproses oleh suatu fungsi secara akurat atau tidak. Sementara downcasting tidak mungkin secara implisit, seseorang dapat melakukan upcasting baik secara eksplisit maupun implisit.

Baik downcasting dan upcasting adalah elemen penting dari Java dan memungkinkan orang untuk mengembangkan program yang kompleks dengan penggunaan sintaks sederhana. Mereka juga memiliki beberapa keuntungan besar seperti pengelompokan objek yang beragam bersama-sama atau Polimorfisme.

Pelajari kursus pengembangan perangkat lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Upcasting

Dalam upcasting, objek anak adalah typecast ke objek kelas induk. Dengan penggunaan proses ini, orang dapat memanfaatkan akses ke metode dan variabel yang dibedakan dari kelas induk ke anak dengan mudah. Akses ke hanya beberapa metode dan variabel tertentu dari kelas anak, seperti metode yang diganti, diperlukan dalam proses. Dalam banyak kasus, upcasting juga disebut pelebaran dan generalisasi. Upcasting dapat dilakukan secara implisit, dan memberi orang fleksibilitas untuk mengakses anggota kelas induk.

Contoh berikut dapat membantu dalam memberikan pemahaman yang lebih baik tentang proses tersebut.

Contoh: Ada kelas hewan yang menampilkan beragam kelas hewan, salah satunya adalah ikan. Sekarang, dengan asumsi bahwa kelas hewan diperpanjang oleh kelas ikan, akan ada dua cara pewarisan. Warisan adalah salah satu aspek kunci dari Pemrograman Berorientasi Objek atau OOP yang memungkinkan satu kelas untuk mewarisi fitur yang lain. Ini menyiratkan kelas turunan yang merupakan superset dari kelas dasar. Mungkin ada lebih banyak metode yang ditampilkan di sini daripada kelas dasar. Selama upcast, satu-satunya hal yang mungkin terjadi dengan antarmuka kelas adalah bahwa hal itu dapat berakhir dengan kehilangan metode daripada mendapatkannya. Akibatnya, kompilator memungkinkan upcasting tanpa jenis notasi khusus atau pemeran eksplisit.

Komposisi vs Warisan

Ketika datang ke pemrograman berorientasi objek, ada kemungkinan besar bahwa seseorang mungkin akhirnya membuat dan menggunakan dilakukan hanya dengan mengemas metode dan data bersama-sama dalam sebuah kelas, sementara selanjutnya memanfaatkan objek yang ada di kelas itu. Orang bahkan dapat menggunakan kelas tertentu yang ada untuk mengembangkan kelas baru dengan komposisi. Warisan digunakan relatif jarang. Saat mempelajari OPP meskipun pewarisan mendapatkan banyak fokus, penting bagi pengembang untuk mengetahui penggunaan yang benar dan jangan mencoba menggunakannya hanya di mana pun mereka bisa.

Faktanya, seseorang harus menggunakannya sangat jarang, hanya untuk skenario di mana pewarisan benar-benar berguna. Di antara cara paling sederhana untuk mengidentifikasi apakah seseorang harus menggunakan pewarisan atau komposisi adalah dengan mempertanyakan diri mereka sendiri tentang apakah mereka perlu melakukan upcast dari pemeran baru mereka ke pemeran dasar. Jika upcasting adalah suatu keharusan maka seseorang harus menggunakan warisan. Namun, jika itu bukan suatu keharusan, maka seseorang harus memikirkan lebih lanjut tentang perlunya warisan.

downcasting

Downcasting adalah bentuk lain dari casting tipe objek dan digunakan dalam menunjuk objek referensi subclass ke kelas induk yang tidak diperbolehkan di Java. Downcast tidak terlalu sulit untuk dipahami. Misalnya, jika ada kelas dasar dan kelas yang secara tidak langsung atau tidak langsung diturunkan dari kelas dasar, maka setiap kali objek dari tipe kelas dasar terus di-typecast ke dalam kelas turunan, itu disebut sebagai downcast. Akibatnya, sesuai downcasting, seseorang akan turun ke diagram pewarisan dengan berusaha mengambil objek kelas dasar dan kemudian mengubahnya menjadi tipe kelas turunan. Namun, penting untuk dicatat bahwa berdasarkan kode yang ditulis, downcasting mungkin masuk akal atau tidak.

Saat orang melakukan sistem downcasting, mereka tidak akan menemukan kesalahan kompiler apa pun. Namun, mereka akan menghadapi java.lang.ClassCastException, yang merupakan pengecualian runtime. Jadi sekarang muncul pertanyaan jika downcasting tidak mungkin dilakukan di Jawa lalu mengapa orang melakukannya? Sederhananya, downcasting hanya dapat digunakan dalam situasi tertentu di mana objek yang dirujuk oleh kelas induk milik subkelas.

Downcasting bisa sangat berguna saat membandingkan satu objek dengan objek lainnya.

Untuk memeriksa apakah downcasting valid atau tidak, seseorang dapat menjalankan

getClass() sistem memungkinkan pengembang untuk memahami kelas objek yang diteruskan, dan kemudian membandingkannya dengan kelas saat ini. Jika mereka tidak sama, maka downcasting tidak valid dan mencoba proses ini akan sia-sia. Konsep downcasting sebagian besar menggunakan casting tipe super ke subtipe. Proses casting seperti ini biasanya dilakukan secara eksplisit. Ini pada dasarnya menyiratkan bahwa tipe berukuran lebih besar dibuat untuk secara eksplisit masuk ke dalam tipe ukuran kecil.

Upcasting vs Downcasting

Upcasting dan. Downcasting memiliki perbedaan tertentu yang sangat khusus. Beberapa di antaranya telah digarisbawahi secara singkat dalam petunjuk berikut:

  • Dalam Upcasting, objek anak di-typecast ke objek induk. Di sisi lain, referensi dari objek kelas induk akhirnya diteruskan ke kelas anak ketika menyangkut downcasting.
  • Orang dapat melakukan upcasting baik secara eksplisit maupun implisit, sedangkan downcasting hanya dapat dilakukan secara eksplisit.
  • Dalam kasus upcasting, orang dapat mengakses variabel dan metode dari kelas induk di kelas anak tetapi tidak sebaliknya. Namun, dalam downcasting, variabel dan metode dari kedua kelas dapat diakses dengan mudah.
  • Upcasting memungkinkan akses hanya ke metode kelas anak tertentu. Baik saat melakukan downcasting, semua metode dan variabel yang berada di bawah kedua kelas dapat diakses.

Kesimpulan

Upcasting jarang digunakan di Jawa. Dalam kebanyakan kasus, orang menggunakannya ketika mereka harus mengembangkan kode yang hanya berhubungan dengan kelas induk. Saat mengembangkan kode yang menyediakan akses ke perilaku kelas anak, downcasting cenderung digunakan.

Jika Anda ingin belajar Java dan mendapatkan sertifikasi dalam komputasi awan juga, tingkatkan level menawarkan Program Sertifikat Tingkat Lanjut di Cloud Computing . Kursus online 7,5 bulan dirancang khusus untuk para profesional yang bekerja untuk membantu mereka masuk ke peran komputasi awan.

Menjadi Pengembang Tumpukan Penuh

DAFTAR SEKARANG UNTUK MAGISTER ILMU KOMPUTER DARI LIVERPOOL JOHN MOORES