Java Abstraction- Menguasai OOP dengan Abstraksi di Java



Artikel tentang Abstraksi Java ini akan membantu Anda memahami penggunaan kelas dan Antarmuka Abstrak dan cara mencapainya menggunakan Abstraksi.

Di blog sebelumnya, Anda telah belajar tentang di Jawa. Nah di blog ini, kita akan memahami satu lagi pilar penting yaitu Abstraksi Java yang fungsi utamanya adalah menyembunyikan detail implementasi internal.

Saya akan membahas topik yang disebutkan di bawah ini dalam artikel ini:





Anda juga dapat melalui rekaman ini di mana Anda dapat memahami topik secara rinci dengan contoh.



Abstraksi di OOP

Ketika kita umumnya berbicara tentang abstraksi, bahasa perangkat lunak adalah contoh Abstraksi. Mari kita ambil contoh dan tulis pernyataan sebagai-

x = y + z

Dalam pernyataan di atas, kami menambahkan dua variabel yang disimpan di dua lokasi berbeda dan kemudian menyimpan hasilnya di lokasi baru. Jadi, apa yang terjadi selanjutnya? Seperti yang Anda ketahui, ada register, set instruksi, penghitung program, unit penyimpanan, dll., Yang terlibat. Ketika kita mengacu pada abstraksi di Java, kita berbicara tentang abstraksi dalam dan bagaimana itu dicapai. Konsep abstraksi dalam OOP dimulai tepat pada saat kelas sedang disusun. Abstraksi diterapkan di mana saja dalam perangkat lunak dan OOP.



Apa itu Abstraksi Java?

Abstraksi tidak lain adalah kualitas berurusan dengan ide daripada peristiwa. Ini pada dasarnya berkaitan dengan menyembunyikan detail internal dan menunjukkan hal-hal penting kepada pengguna.

Memanggil - Abstraksi Java -Edureka

Jika Anda melihat gif di atas, Anda dapat melihat ketika Anda mendapat panggilan, kami mendapat opsi untuk mengangkatnya atau menolaknya. Namun kenyataannya, ada banyak kode yang berjalan di latar belakang. Jadi di sini, Anda tidak mengetahui pemrosesan internal tentang bagaimana panggilan dihasilkan, itulah keindahan abstraksi. Anda dapat mencapai abstraksi dengan dua cara:

a) Kelas Abstrak

b) Antarmuka

Mari kita pahami konsep ini lebih detail.

Kelas Abstrak

Kelas abstrak berisi kata kunci 'abstrak'. Tapi apa sebenarnya artinya? Jika Anda membuat kelas abstrak, kelas tersebut tidak dapat dibuat instance-nya, yaitu Anda tidak dapat membuat objek dari kelas abstrak. Selain itu, kelas abstrak dapat berisi metode abstrak dan juga metode konkret.

catatan: Anda dapat mencapai abstraksi 0-100% menggunakan kelas abstrak.

Untuk menggunakan kelas abstrak, Anda harus mewarisinya dari kelas dasar. Di sini, Anda harus menyediakan implementasi untuk metode abstrak, jika tidak maka akan menjadi kelas abstrak.

Mari kita lihat sintaks kelas abstrak:

Kelas abstrak Olahraga {// olahraga kelas abstrak Abstract void jump () // metode abstrak}

Antarmuka

Antarmuka di Java adalah kumpulan metode abstrak dan konstanta statis. Seperti yang mungkin Anda ketahui dalam sebuah antarmuka, setiap metode bersifat publik dan abstrak tetapi tidak berisi konstruktor apa pun. Bersamaan dengan abstraksi, antarmuka juga membantu mencapai multiple inheritance di Java.
catatan: Anda dapat mencapai 100% abstraksi menggunakan antarmuka.

Pada dasarnya, Interface adalah sekelompok metode terkait dengan badan kosong. Mari kita pahami antarmuka dengan mengambil contoh antarmuka Bentuk dengan metode terkaitnya.

bentuk antarmuka publik {public void draw () public double getArea ()}

Metode ini harus ada dalam setiap 'bentuk', bukan? Tetapi pekerjaan mereka akan berbeda.

perbedaan antara pencarian terhubung dan tidak terhubung

Misalkan Anda ingin menggambar sebuah bentuk, misalnya lingkaran, persegi, persegi panjang, dll. Anda sudah tahu, setiap bentuk memiliki dimensinya sendiri seperti jari-jari, tinggi, dan lebar. Katakanlah saya ingin menggambar lingkaran dan menghitung luasnya. Mempertimbangkan hal yang sama, saya telah membuat dua metode pada kode di atas yaitu draw () dan getArea (). Sekarang, dengan menggunakan metode ini, saya dapat menggambar bentuk apapun dan menghitung luas dengan mengimplementasikan antarmukanya.

Sekarang, mari kita lihat fungsionalitas tentang bagaimana Anda dapat mengimplementasikan antarmuka ini.
Untuk mengimplementasikan antarmuka ini, nama kelas Anda akan berubah menjadi salah satu Bentuk, katakanlah 'Lingkaran'. Jadi, untuk mengimplementasikan antarmuka kelas, saya akan menggunakan kata kunci 'implement':

public class Circle mengimplementasikan Bentuk {private double radius public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

Dalam contoh di atas, saya telah menentukan fungsionalitas ke berbagai metode dan menghitung luas lingkaran. Di sini, saat mengimplementasikan antarmuka, ini memungkinkan kelas menjadi lebih formal tentang perilaku yang disediakannya. Anda juga dapat membuat kelas lain, katakanlah kelas 'Persegi Panjang' yang dapat mewarisi antarmuka yang sama 'bentuk' dengan fungsi yang berbeda.

Contoh abstraksi real-time di java

Misalkan kita memiliki Sport sebagai antarmuka. Di sini, implementasi akan diberikan oleh kelas yang disebut “Badminton” dan “Football”. Dalam skenario nyata, pengguna akhir tidak akan mengetahui kelas implementasi. Oleh karena itu, objek kelas implementasi dapat disediakan dengan metode pabrik. Metode pabrik dapat digunakan untuk membuat objek kelas implementasi berdasarkan beberapa kriteria.
Mari terapkan hal yang sama dan buat antarmuka bernama Sport.java.

public Interface Sport {void play ()} // Sekarang kita akan membuat class bernama 'Badminton' public class Badminton implement Sport {@Override public void play () {System.out.println ('Playing badminton')}} // Selanjutnya, mari kita buat kelas terakhir 'Sepak bola' kelas publik Sepak bola implementasikan Olahraga {@Override public void play () {System.out.println ('Playing football')}

Langkah terakhir adalah membuat kelas utama bernama “SportInterface”.

public SportInterface {public static void main (String args []) {// kode Anda di sini}}

Saat Anda menjalankan program di atas, hasilnya akan seperti gambar di bawah ini:

Bermain bulu tangkis ------------------- Bermain sepak bola

Saya harap kalian paham dengan antarmuka dan bagaimana Anda dapat mencapai abstraksi dengan menggunakannya. Sekarang, mari kita simpulkan artikel ini dengan membandingkan Abstraksi dan Enkapsulasi.

Abstraksi vs Enkapsulasi

Abstraksi Enkapsulasi
Memecahkan masalah di tingkat desainMemecahkan masalah di tingkat implementasi
Digunakan untuk menyembunyikan data yang tidak diinginkan dan memberikan hasil yang relevanEnkapsulasi berarti menyembunyikan kode dan data ke dalam satu kesatuan untuk melindungi data dari dunia luar
Tata letak luar - digunakan dalam hal desainTata letak batin - digunakan dalam hal implementasi

Saya harap Anda memahami perbedaan antara Abstraksi dan Enkapsulasi. Dengan ini, kami mengakhiri blog Abstraksi Java. Harapan, Anda menganggapnya informatif dan membantu dalam menambah nilai pada pengetahuan Anda. Jika Anda ingin mempelajari lebih lanjut tentang Java, Anda dapat merujuk ke

Sekarang setelah Anda memahami 'Apa itu Abstraksi Java', lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java. Kursus ini dirancang untuk memberi Anda permulaan dalam pemrograman Java dan melatih Anda untuk konsep Java inti dan lanjutan bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar di blog 'Abstraksi Java' ini dan kami akan menghubungi Anda kembali secepatnya.