Panduan untuk Antarmuka Batin di Java

1. Perkenalan

Dalam tutorial singkat ini, kita akan melihat antarmuka dalam di Java. Mereka terutama digunakan untuk:

  • memecahkan masalah namespacing ketika antarmuka memiliki nama yang sama
  • meningkatkan enkapsulasi
  • meningkatkan keterbacaan dengan mengelompokkan antarmuka terkait di satu tempat

Contoh terkenal adalah antarmuka Entri yang dideklarasikan di dalam antarmuka Peta . Didefinisikan dengan cara ini, antarmuka tidak dalam lingkup global, dan itu dirujuk sebagai Map . Entri membedakannya dari antarmuka Entri lain dan membuat hubungannya dengan Map jelas.

2. Antarmuka Batin

Menurut definisi, deklarasi antarmuka bagian dalam terjadi di badan antarmuka atau kelas lain.

Mereka secara implisit bersifat publik dan statis serta bidangnya saat dideklarasikan di antarmuka lain (mirip dengan deklarasi bidang di antarmuka tingkat atas), dan dapat diterapkan di mana saja:

public interface Customer { // ... interface List { // ... } }

Antarmuka dalam yang dideklarasikan dalam kelas lain juga statis , tetapi mereka dapat memiliki penentu akses yang dapat membatasi di mana mereka dapat diimplementasikan:

public class Customer { public interface List { void add(Customer customer); String getCustomerNames(); } // ... }

Dalam contoh di atas, kami memiliki antarmuka Daftar yang akan berfungsi sebagai mendeklarasikan beberapa operasi pada daftar Pelanggan seperti menambahkan yang baru, mendapatkan representasi String , dan sebagainya.

List adalah nama yang lazim, dan untuk bekerja dengan pustaka lain yang mendefinisikan antarmuka ini, kita perlu memisahkan deklarasi kita, yaitu namespace .

Di sinilah kita menggunakan antarmuka bagian dalam jika kita tidak ingin menggunakan nama baru seperti Daftar Pelanggan.

Kami juga menyimpan dua antarmuka terkait bersama yang meningkatkan enkapsulasi.

Akhirnya, kita dapat melanjutkan penerapannya:

public class CommaSeparatedCustomers implements Customer.List { // ... }

3. Kesimpulan

Kami telah melihat sekilas antarmuka dalam di Java.

Seperti biasa, contoh kode dapat ditemukan di GitHub.