Abstraksi di Java
Apa itu Abstraksi Java?
Abstraksi adalah konsep pemrograman berorientasi objek yang "menampilkan" hanya atribut penting dan "menyembunyikan" informasi yang tidak diperlukan. Tujuan utama abstraksi adalah menyembunyikan detail yang tidak diperlukan dari pengguna. Abstraksi adalah memilih data dari kumpulan yang lebih besar untuk hanya menampilkan detail objek yang relevan kepada pengguna. Ini membantu mengurangi kerumitan dan upaya pemrograman. Ini adalah salah satu konsep OOP yang paling penting.
Klik di sini jika video tidak dapat diakses
Mari Belajar Abstraksi di OOP dengan contoh:
Misalkan Anda ingin membuat aplikasi perbankan dan diminta untuk mengumpulkan semua informasi tentang pelanggan Anda. Ada kemungkinan Anda akan mendapatkan informasi berikut tentang pelanggan tersebut
Namun, tidak semua informasi di atas diperlukan untuk membuat aplikasi perbankan. Jadi, Anda hanya perlu memilih informasi yang berguna untuk Anda. aplikasi perbankan dari kolam itu. Data seperti nama, alamat, informasi pajak, dll. masuk akal untuk aplikasi perbankan yang merupakan contoh Abstraksi dalam OOP
Karena kami telah mengambil/menghapus/memilih informasi pelanggan dari kumpulan yang lebih besar, prosesnya disebut sebagai Abstraksi dalam Ups. Namun, informasi yang sama setelah diekstraksi dapat digunakan untuk berbagai macam aplikasi. Misalnya, Anda dapat menggunakan data yang sama untuk aplikasi rumah sakit, aplikasi portal pekerjaan, basis data Pemerintah, dll. dengan sedikit atau tanpa modifikasi. Dengan demikian, data tersebut menjadi Data Master Anda. Ini merupakan keuntungan Abstraksi dalam OOP.
Perbedaan antara Abstraksi dan Enkapsulasi
Abstraksi | Enkapsulasi |
---|---|
Abstraksi dalam Pemrograman Berorientasi Objek memecahkan masalah di tingkat desain. | Enkapsulasi menyelesaikannya pada tingkat implementasi. |
Abstraksi dalam Pemrograman adalah tentang menyembunyikan detail yang tidak diinginkan sambil menampilkan informasi yang paling penting. | Enkapsulasi berarti mengikat kode dan data menjadi satu kesatuan. |
Abstraksi Data di Java memungkinkan pemfokusan pada apa yang harus dikandung objek informasi | Enkapsulasi berarti menyembunyikan rincian internal atau mekanisme bagaimana suatu objek melakukan sesuatu demi alasan keamanan. |
Perbedaan antara Kelas Abstrak dan Antarmuka
Kelas Abstrak | Antarmuka |
---|---|
Kelas abstrak dapat memiliki metode abstrak dan non-abstrak. | Antarmuka hanya dapat memiliki metode abstrak. |
Itu tidak mendukung banyak warisan. | Ini mendukung banyak pewarisan. |
Ini dapat menyediakan implementasi antarmuka. | Itu tidak dapat menyediakan implementasi kelas abstrak. |
Kelas abstrak dapat memiliki metode publik yang dilindungi dan abstrak. | Sebuah antarmuka hanya dapat memiliki metode abstrak publik. |
Kelas abstrak dapat memiliki variabel final, statis, atau final statis dengan penentu akses apa pun. | Antarmuka hanya dapat memiliki variabel final statis publik. |
Apa itu Kelas Abstrak?
KELAS ABSTRAK adalah jenis kelas di Java, yang mendeklarasikan satu atau lebih metode abstrak. Kelas-kelas ini dapat memiliki metode abstrak dan juga metode konkrit. Kelas normal tidak dapat memiliki metode abstrak. Kelas abstrak adalah kelas yang berisi setidaknya satu metode abstrak. Kita dapat memahami konsep tersebut melalui contoh bentuk di java.
Pertimbangkan hierarki kelas berikut yang terdiri dari kelas Shape yang diwarisi oleh tiga kelas Rectangle, Circle, dan Triangle. Kelas Shape dibuat untuk menghemat atribut dan metode umum yang digunakan oleh tiga kelas Rectangle, Circle, dan Triangle. calculateArea() adalah salah satu metode yang digunakan oleh ketiga kelas anak dan ada di kelas Shape.
Sekarang, asumsikan Anda menulis kode untuk membuat objek untuk kelas yang digambarkan di atas. Mari kita amati caranya objek akan terlihat di dunia praktis. Sebuah objek dari kelas persegi panjang akan menghasilkan persegi panjang, suatu bentuk yang biasa kita amati dalam kehidupan sehari-hari.
Sebuah objek dari kelas segitiga akan menghasilkan sebuah segitiga, lagi-lagi bentuk umum sehari-hari.
Tapi seperti apa objek Class Shape di dunia praktis ??
Jika Anda mengamati kelas Shape yang disajikan tujuan kita mencapainya warisan dan polimorfisme. Tapi itu tidak dibangun untuk dipakai. Kelas-kelas tersebut dapat diberi label Abstrak. Kelas java abstrak tidak dapat dipakai.
sintaks:
abstract class Shape{ // code }
Ada kemungkinan bahwa Anda TIDAK memberi label kelas Bentuk sebagai Abstrak dan kemudian membuat instance-nya. Namun objek seperti itu tidak akan berguna dalam kode Anda dan akan membuka ruang bagi potensi kesalahan. Oleh karena itu hal ini tidak diinginkan.
Apa yang dimaksud dengan Metode Abstrak di Java?
METODE ABSTRAK in Java, adalah metode yang hanya memiliki definisi metode tetapi tidak mengandung implementasi. Metode tanpa isi disebut Metode Abstrak. Itu harus dideklarasikan di kelas abstrak. Metode abstrak tidak akan pernah final karena kelas abstrak harus mengimplementasikan semua metode abstrak.
Seperti yang kita ketahui bersama, rumus menghitung luas persegi panjang, lingkaran, dan segitiga berbeda-beda. Metode kalkulasiArea() harus ditimpa oleh kelas yang mewarisinya. Tidak masuk akal mendefinisikannya di kelas Shape, tapi kita perlu memastikan bahwa semua kelas yang mewarisi memiliki metode tersebut.
Metode seperti itu bisa diberi label abstrak.
sintaks:
abstract public void calculateArea();
Untuk metode abstrak, tidak diperlukan implementasi. Hanya tanda tangan dari metode yang ditentukan.
Contoh Kode Abstraksi
abstract class Shape{ abstract void calculateArea(); } class guru99 extends Shape{ void calculateArea(){System.out.println("Area of Shape");} public static void main(String args[]){ Shape obj = new guru99(); obj.calculateArea(); } }
Keuntungan Abstraksi
- Manfaat utama menggunakan Abstraksi di Pemrograman adalah memungkinkan Anda mengelompokkan beberapa kelas terkait sebagai saudara kandung.
- Abstraksi dalam Pemrograman Berorientasi Objek membantu mengurangi kompleksitas proses desain dan implementasi perangkat lunak.
Kata Kunci Akhir di Java
Pengubah terakhir berlaku untuk kelas, metode, dan variabel. Arti final bervariasi dari konteks ke konteks, tetapi gagasan dasarnya tetap sama.
- Kelas terakhir tidak dapat diwariskan
- Variabel akhir menjadi konstan dan nilainya tidak dapat diubah.
- Metode terakhir tidak dapat dikesampingkan. Hal ini dilakukan untuk alasan keamanan, dan metode ini digunakan untuk optimasi.
Example :- Untuk mempelajari kata kunci abstrak & final
Langkah 1) Salin kode berikut ke Editor.
abstract class Shape{ final int b = 20; public void display(){ System.out.println("This is display method"); } abstract public void calculateArea(); } public class Rectangle extends Shape{ public static void main(String args[]){ Rectangle obj = new Rectangle(); obj.display(); //obj.b=200; } //public void calculateArea(){} }
Langkah 2) Simpan, Kompilasi & Jalankan kode.
Langkah 3) Kesalahan =? Metode abstrak tidak diimplementasikan di kelas Rectangle. Untuk memperbaiki masalah, hapus komentar pada baris #15.
Langkah 4) Batalkan komentar pada baris #13. Simpan & Kompilasi kodenya.
Langkah 5) Kesalahan = ? variabel b bersifat final
Kapan menggunakan Metode Abstrak & Kelas Abstrak?
Metode abstrak sebagian besar dideklarasikan ketika dua atau lebih subkelas juga melakukan hal yang sama dengan cara berbeda melalui implementasi berbeda. Itu juga memperluas kelas Abstrak yang sama dan menawarkan implementasi metode abstrak yang berbeda.
Kelas abstrak membantu menjelaskan jenis perilaku umum dan hierarki kelas pemrograman berorientasi objek. Kelas abstrak juga menjelaskan subkelas untuk memberikan detail implementasi kelas abstrak.
Ringkasan:
- Abstraksi dalam Pemrograman adalah proses pemilihan kumpulan data penting untuk suatu obyek dalam perangkat lunak Anda dan tinggalkan yang tidak penting.
- Setelah Anda memodelkan objek Anda menggunakan Abstraksi Data Java, kumpulan data yang sama dapat digunakan dalam aplikasi yang berbeda.