Antara Muka dalam Amalan
Gunakan antara muka sebagai jenis, hantarkannya kepada kaedah dan tukar pelaksanaan dengan mudah. Berlatih corak kecil untuk kod yang fleksibel.
Antara Muka dalam Amalan ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 3 pelajaran.
Gambaran keseluruhan
Antara muka dalam amalan: anggap keupayaan sebagai jenis dan pastikan kod pemanggil tidak bergantung pada kelas konkrit. Anda boleh menghantar antara muka kepada kaedah, menyimpannya dalam senarai dan menggantikannya dengan pelaksanaan yang berbeza apabila diperlukan.
Antara muka sebagai parameter
Kaedah memperoleh fleksibiliti jika menerima jenis antara muka sebagai parameter:
- Kod pemanggil kekal sama.
- Kelas berbeza boleh menggunakan kontrak yang sama lalu digunakan.
- Semasa ujian, anda boleh memasang palsu atau olok-olok dan mencubanya dengan cepat.
Kod: keupayaan Printable
Kaedah ini menggunakan kontrak Printable, bukannya kelas konkrit; walaupun pelaksanaannya berubah, kod pemanggil kekal sama.
public class Main {
// 1) Define a tiny capability
static interface Printable { void print(); }
// 2) Two implementations
static class TextDoc implements Printable {
public void print() { System.out.println("[TextDoc] Printing text pages"); }
}
static class Photo implements Printable {
public void print() { System.out.println("[Photo] Printing a photo"); }
}
// 3) A method that depends on capability, not class
static void runJob(Printable p) {
p.print(); // caller does not care which class it is
}
public static void main(String[] args) {
runJob(new TextDoc());
runJob(new Photo());
}
}
Antara muka sebagai jenis pemulangan
Kadangkala kaedah kilang memulangkan satu antara muka. Pemanggil hanya melihat keupayaan; ia tidak perlu mengetahui kelas sebenar. Ini mengurangkan kebergantungan dan meningkatkan kemodularan.
Kod: strategi dengan Formatter
Kaedah yang sama berfungsi dengan pelaksanaan Formatter yang berbeza. Kami dapat mengubah tingkah laku tanpa mengubah kelas.
public class Main {
// Strategy: different ways to format text
static interface Formatter { String format(String s); }
static class UpperFormatter implements Formatter {
public String format(String s) { return s.toUpperCase(); }
}
static class LowerFormatter implements Formatter {
public String format(String s) { return s.toLowerCase(); }
}
// Uses any Formatter
static String show(String title, Formatter f) {
return title + " -> " + f.format(title);
}
public static void main(String[] args) {
System.out.println(show("Hello", new UpperFormatter()));
System.out.println(show("Hello", new LowerFormatter()));
}
}
Kod: Senarai antara muka
Sesuatu tatasusunan atau senarai boleh terdiri daripada jenis antara muka. Gelung membuat satu panggilan yang sama; setiap elemen menjalankan pelaksanaannya sendiri.
public class Main {
static interface Task { void run(); }
static class EmailTask implements Task { public void run(){ System.out.println("Send email"); } }
static class ReportTask implements Task { public void run(){ System.out.println("Generate report"); } }
static class CleanupTask implements Task { public void run(){ System.out.println("Clean temp files"); } }
public static void main(String[] args) {
Task[] queue = { new EmailTask(), new ReportTask(), new CleanupTask() };
for (int i = 0; i < queue.length; i = i + 1) {
queue[i].run(); // same call, different behavior
}
}
}
Semakan amali antara muka
Semakan ringkas: Mengapakah pendekatan "memprogramkan kepada antara muka" berguna?
Ringkasan
Ringkasan: Menggunakan jenis antara muka sebagai parameter, nilai pulangan atau koleksi menjadikan kod lebih fleksibel. Anda boleh menukar pelaksanaan dan mencuba dengan cepat menggunakan objek palsu dalam ujian.
Pelajari Java dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 104
- Pelajaran
- 374
Soalan Lazim
Adakah pelajaran “Antara Muka dalam Amalan” percuma?
Ya — teks penuh “Antara Muka dalam Amalan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Antara Muka dalam Amalan”?
Gunakan antara muka sebagai jenis, hantarkannya kepada kaedah dan tukar pelaksanaan dengan mudah. Berlatih corak kecil untuk kod yang fleksibel. Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Java Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 3.
Berapa lamakah pelajaran “Antara Muka dalam Amalan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Antara Muka dalam Amalan
- Asas Generik (T, Inferens)
- Kaedah/Kelas Generik