' Antarmuka adalah tingkat mahir dalam mencapai abstraksi dalam Bahasa Pemrograman Java. Antarmuka Java membantu dalam pengurangan kompleksitas dalam kode dan menyederhanakan keterbacaan . Pada artikel ini, saya akan menjelaskan kepada Anda Java Interface melalui map berikut.
- Apa itu Antarmuka Java?
- Mengapa kita membutuhkan Antarmuka?
- Mendeklarasikan Antarmuka Java: Sintaks
- Contoh Antarmuka Java
- Menyusun Antarmuka Java
- Perbedaan antara kelas dan Antarmuka
- Keuntungan dan Kerugian Antarmuka
- Poin Utama pada Antarmuka Java
Apa itu Antarmuka Java?
Antarmuka Komputer dikenal sebagai batas yang memisahkan dua atau lebih sistem. Ini bertukar data antara komponen dalam sistem yang dapat memberi sinyal, perintah atau protokol.
Abstraksi Java menyediakan fungsionalitas metode tertentu dengan menyembunyikan logika implementasi yang tertulis di dalam metode. Demikian pula, Antarmuka Java juga merupakan Kelas Abstrak yang menyertakan Deklarasi Metode tetapi bukan definisinya. Kelas mengimplementasikan Antarmuka untuk mewarisi metode abstrak. Seiring dengan metode abstrak, file antarmuka bisa juga termasuk konstanta, metode statis, antarmuka bersarang dan metode default.
Persamaan antara Kelas dan Antarmuka.
Antarmuka sangat mirip dengan kelas normal di Java. Antarmuka menyertakan metode abstrak dan metode ini dirancang untuk diterapkan. Proses ini sama dengan pewarisan, yang normal jika menyangkut kelas. Kami akan membahas lebih lanjut tentang kesamaan.
- Sama seperti kelas, antarmuka juga dapat berisi sejumlah metode yang diperlukan.
- Mirip dengan kelas, antarmuka juga ditulis dengan a .Jawa file ekstensi.
- Anehnya, bytecode untuk antarmuka akan muncul di file .kelas mengajukan.
- Sebuah antarmuka ditampilkan dalam bentuk paket dan bytecode masing-masing ada di direktori yang sesuai dengan nama paket.
Mengapa kita membutuhkan Antarmuka?
Java tidak mendukung Beberapa Warisan, Oleh karena itu, Ini tidak akan mengizinkan kelas untuk memperluas lebih dari satu kelas pada satu instance. Kelas anak tidak dapat mewarisi properti dari beberapa kelas induk pada satu contoh, karena hasilnya Masalah Berlian. Untuk mengatasi masalah ini, Antarmuka diperkenalkan. Mari kita pahami masalah ini melalui sebuah contoh.
array objek di java
Mari kita asumsikan bahwa kita memiliki dua pesawat, satu hanya dapat membawa penumpang, yang satunya saja posisi. Sekarang, kita perlu mewarisi properti dari pesawat kargo dan pesawat penumpang. Java tidak akan mendukung solusi ini karena berakhir di kemenduaan antara dua pesawat.
Tapi, jika Anda bisa membuatnya mungkin dengan membuat Java merasa bahwa itu mewarisi satu bidang dan menerapkan metode yang ada di bidang lain. Ini seperti pesawat komersial yang membawa penumpang dan barang bawaan. Antarmuka seperti membuat bidang yang lebih besar yang dapat melakukan kedua tugas tanpa mengganggu komponen satu sama lain, alih-alih hanya meminjam metode dari Kelas Antarmuka.
// Kode Kelas A.
paketkan beberapa kelas A {void msg () {System.out.println ('Hello')}}
// Kode Kelas B.
paket beberapa kelas B {void msg () {System.out.println ('Selamat Datang')}}
Kode Kelas C.
package multiple class C extends A, B {// Ini tidak akan diterima oleh Java, Ini akan membuat kesalahan dan kode tidak akan dieksekusi. public static void main (String args []) {C obj = baru C () obj.msg ()}}
Keluaran:
Kesalahan. Pendekatan khusus ini memberikan pengecualian. Java tidak mendukung Beberapa warisan. Kesalahan ini dikenal sebagai Masalah Berlian
Mari kita coba solusi dengan menggunakan sebuah antarmuka, Kelas Anak dapat mengakses metode dari Banyak Induk kelas pada satu contoh.
// Kode Antarmuka
paket MIS solusi antarmuka publik {public void Hello () public void Selamat datang ()}
// Kode Kelas
paket MIS public class classA mengimplementasikan solusi {public void Hello () {java.lang.System.out.println ('Hello world')} public void Welcome () {java.lang.System.out.println ('Selamat datang di Edureka ')} public static void main (String [] args) {classA Edureka = new classA () Edureka.Hello () Edureka.Welcome ()}}
Keluaran:
Halo Dunia
Selamat datang di Edureka
Mendeklarasikan Antarmuka Java: Sintaks
antarmuka interface_name {// deklarasikan bidang konstan // deklarasikan metode () // metode default}
Mari kita lihat contoh pada Java Interface
Contoh Antarmuka Java
Mari kita buat Kalkulator sederhana berdasarkan Antarmuka Java.
// Kode Antarmuka
paket operasi dasar matematika antarmuka publik {public void add () public void sub () public void mul () public void div ()}
// Kode Kelas
paket basicoperations import java.util.Scanner public class student1 mengimplementasikan matematika {@Override public void add () {Scanner kb = new Scanner (System.in) System.out.println ('Masukkan dua nilai integer untuk melakukan penambahan') int a = kb.nextInt () int b = kb.nextInt () int s = a + b System.out.println ('Jumlah' + a + 'dan' + b + 'is' + s)} @Override sub public void () {Scanner kb = new Scanner (System.in) System.out.println ('Masukkan dua nilai integer untuk melakukan substraksi') int a = kb.nextInt () int b = kb.nextInt () int s = ab System.out.println ('Perbedaan' + a + 'dan' + b + 'is' + s)} @Override public void mul () {Scanner kb = new Scanner (System.in) System.out.println ('Enter perkalian dua nilai integer ') int a = kb.nextInt () int b = kb.nextInt () int s = a * b System.out.println (' Product of '+ a +' and '+ b +' is '+ s)} @Override public void div () {Scanner kb = new Scanner (System.in) System.out.println ('Masukkan dua pembagian nilai integer') int a = kb.nextInt () int b = kb.nextInt () int s = a / b System.out.p rintln ('Hasil Bagi dari' + a + 'dan' + b + 'adalah' + s)} public static void main (String [] args) {student1 Edureka1 = new student1 () Edureka1.add () Edureka1.sub () Edureka1. mul () Edureka1.div ()}}
Keluaran:
Lebih jauh lagi, kita akan belajar membuat Java Interface.
Menyusun Antarmuka Java
Interface Nesting adalah proses mendeklarasikan Antarmuka di dalam yang lain Antarmuka yang Ada atau mendeklarasikan Antarmuka di dalam a Kelas. Antarmuka Bersarang juga dikenal sebagai Antarmuka Bagian Dalam.
Antarmuka Bersarang tidak dapat diakses langsung . Oleh karena itu, Nesting diimplementasikan untuk menyelesaikan Namespaces dengan mengelompokkannya dengan yang terkait Antarmuka dan Kelas. Dengan prosedur ini,kita bisa memanggil Antarmuka Bersarang melalui Kelas Luar atau Antarmuka Luar nama diikuti dengan a dot( . ) , dan Nama antarmuka.
Mari kita coba beberapa contoh berdasarkan Interface Nesting. Pertama, mari kita coba membuat sarang a Antarmuka Java di dalam yang lain Antarmuka Java seperti yang ditunjukkan di bawah ini:
// Kode Antarmuka
paket antarmuka publik Nest OuterInterface {void display () antarmuka InnerInterface {void InnerMethod ()}}
// Kode Kelas
paket kelas Nest NestedInterfaceDemo mengimplementasikan OuterInterface.InnerInterface {public void InnerMethod () {int n = 10, t1 = 0, t2 = 1 System.out.print ('First' + n + 'terms:') untuk (int i = 1 i & lt = n ++ i) {System.out.print (t1 + '+') int sum = t1 + t2 t1 = t2 t2 = sum} System.out.println ('nPrinting dari metode Nested InnerInterface ...! n ')} public static void main (String args []) {OuterInterface.InnerInterface obj = new NestedInterfaceDemo () obj.InnerMethod ()}}
Keluaran:
10 istilah pertama: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + Mencetak dari metode Nested InnerInterface ...!
Sekarang, mari kita coba membuat sarang a Antarmuka Java di dalam a Kelas Java.
sort library c ++
// Kode Antarmuka
paket Nest2 kelas publik EdurekaClass {antarmuka EdurekaInterface {void NestedMethod ()}}
// Kode Kelas
paket Nest2 class NestedInterfaceDemo2 mengimplementasikan EdurekaClass.EdurekaInterface {public void NestedMethod () {String input = 'Edureka' byte [] strAsByteArray = input.getBytes () byte [] result = byte baru [strAsByteArray.length] untuk (int i = 0 i & ltrAsray .length i ++) result [i] = strAsByteArray [strAsByteArray.length-i-1] System.out.println (String baru (hasil))} public static void main (String args []) {EdurekaClass.EdurekaInterface obj = new NestedInterfaceDemo2 () obj.NestedMethod ()}}
Keluaran:
akerudE
Meskipun Antarmuka terlihat hampir mirip dengan Kelas, ada beberapa perbedaan di antara mereka, Mari kita bahas perbedaannya.
Perbedaan antara Kelas Java dan Antarmuka Java
ANTARMUKA | KELAS |
Mendukung Banyak Warisan | Tidak mendukung Multiple Inheritance |
Tidak memiliki Anggota Data | Termasuk Anggota Data |
Tidak memiliki Konstruktor | Termasuk Konstruktor |
Termasuk Anggota Tidak Lengkap (Anggota Tanda Tangan) | Termasuk anggota Lengkap (Abstrak) dan Tidak Lengkap |
Tidak memiliki Pengubah Akses | Termasuk Pengubah Akses |
Antarmuka tidak memiliki Anggota Statis | Kelas memiliki semua anggotanya sebagai Statis |
Keuntungan dan Kerugian Antarmuka Java
Keuntungan:
- Antarmuka Java mendukung Warisan Ganda.
- Antarmuka Java memungkinkan pemrogram untuk memecah pendekatan pemrograman yang kompleks dan menyederhanakan ketergantungan di antara objek.
- Antarmuka Java membuat file anggota data dan metode dalam aplikasi untuk digabungkan secara longgar.
Kekurangan:
- Penggunaan Antarmuka Java menurunkan ekstensi kecepatan eksekusi dari aplikasi tersebut.
- Antarmuka Java dalam aplikasi digunakan secara berulang-ulang atau hampir tidak digunakan sama sekali.
Poin Utama pada Antarmuka Java
- Tak satu pun dari metode yang dideklarasikan dalam antarmuka memiliki isi yang membuatnya menyediakan abstraksi lengkap.
- Tidak mungkin untuk membuat objek antarmuka. Oleh karena itu, Instansiasi Antarmuka tidak dimungkinkan.
- Kelas A dapat mengimplementasikan antarmuka dengan menggunakan implementasi kata kunci. Mari kita lihat ini melalui sebuah contoh.
// Kode Antarmuka
layanan sekarang pelatihan sistem tiket
paket extInterface antarmuka publik extInterface {public void method1 () public void method2 ()}
// Kode Kelas
paket extInterface import kelas java.util.Scanner Edureka mengimplementasikan extInterface {public void method1 () {System.out.println ('implementasi method1') Scanner scanner = new Scanner (System.in) System.out.println ('Masukkan nomor untuk menemukan akar kuadrat di Jawa: ') double square = scanner.nextDouble () double squareRoot = Math.sqrt (square) System.out.printf (' Akar kuadrat angka:% f adalah:% f% n ', square, squareRoot)} public void method2 () {System.out.println ('implementasi method2')} public static void main (String arg []) {extInterface obj = new Edureka () obj.method1 ()}}
Keluaran:
implementasi metode1 Masukkan bilangan untuk menemukan akar kuadrat di Jawa: 16 Akar pangkat dua dari bilangan: 16.0 adalah: 4.0
- Kelas A dapat mengimplementasikan beberapa warisan pada satu contoh. Mari kita pahami melalui kode berikut.
// Kode Antarmuka 1
paket ExtendInt antarmuka publik Antarmuka1 {public void armstrong ()}
// Kode Antarmuka 2
paket ExtendInt antarmuka publik Antarmuka2 {public void prime ()} // Paket Kode Kelas ExtendInt kelas publik Edureka2 mengimplementasikan Interface1, Interface2 {public void armstrong () {int c = 0, a, temp int n = 153 // input temp = n sementara (n & gt0) {a = n% 10 n = n / 10 c = c + (a * a * a)} if (temp == c) System.out.println ('nomor armstrong') lain System.out.println ('Not armstrong number') System.out.println ('Memperluas ke Antarmuka 1')} public void prime () {int i, m = 0, flag = 0 int n = 3 // masukan m = n / 2 if (n == 0 || n == 1) {System.out.println (n + 'bukan bilangan prima')} else {untuk (i = 2i & lt = mi ++) {if (n% i == 0) {System .out.println (n + 'bukan bilangan prima') flag = 1 break}} if (flag == 0) {System.out.println (n + 'adalah bilangan prima')}} System.out.println ('Memperluas ke Antarmuka 2 ')} public static void main (String args []) {Interface2 obj = new Edureka2 () obj.prime () Interface1 obj1 = new Edureka2 () obj1.armstrong ()}}
Keluaran:
3 adalah bilangan prima Memperluas ke Antarmuka 2 bilangan kuat Memperluas Antarmuka 1
- Antarmuka Java membutuhkan variabel yang dideklarasikan untuk diinisialisasi pada saat deklarasi.
- Pengubah Akses untuk antarmuka disetel ke statis publik dan final secara default. Mari kita pahami ini dengan sebuah contoh
// Kode Antarmuka
uji paket antarmuka publik Coba {// public int a = 10 // public static final int a = 10 // static int a = 0 // final int a = 10 // int a = 10}
- Semua pernyataan di atas adalah benar dan valid di dalam Antarmuka.
- Antarmuka Java mampu memperluas sejumlah Antarmuka, tetapi tidak pernah dapat menerapkannya.
- Kelas Java dapat mengimplementasikan sejumlah Antarmuka.
- Kelas Java tidak dapat mengimplementasikan Antarmuka dengan nama metode yang sama dan tipe kembalian yang berbeda.
- Jika ada dua atau lebih metode dengan nama metode yang sama, ada di beberapa antarmuka, maka menerapkan metode sekali saja sudah cukup. Mari kita pahami ini dengan contoh praktis.
// Kode Antarmuka
paket antarmuka publik yang sama A {public void display ()} // Kode Antarmuka paket antarmuka publik yang sama B {public void display ()} // Kode kelas paket kelas yang sama implementasi yang sama A, B {public void display () {System.out .println ('menampilkan data')} public static void main (String [] args) {same print = new same () print.display ()}}
Keluaran:
Selamat datang di Edureka E-Learning
Dengan ini, kita sampai pada akhir artikel ini. Saya harap Anda telah memahami pentingnya Antarmuka, Sintaksis, fungsionalitas, Penyusunan Antarmuka, Poin-poin penting Antarmuka Java dan operasi yang dilakukan menggunakannya.
Sekarang Anda telah memahami dasar-dasar 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 & Musim semi .
Ada pertanyaan untuk kami? Sebutkan di bagian komentar di blog 'Java Interface' ini dan kami akan menghubungi Anda kembali secepatnya.