Sistem Modul Java
Pengenalan kepada Sistem Modul Java
Helo, pemrogram Java yang berhasrat! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia Sistem Modul Java. Sebagai guru sains komputer yang ramah di sekitar kamu, saya di sini untuk membimbing kamu melalui topik yang menarik ini langkah demi langkah. Jangan khawatir jika kamu baru dalam pemrograman – kita akan memulai dari dasar dan maju bersama-sama!
Apakah itu Modul?
Mari kita mula dengan analogi yang simple. Bayangkan kamu sedang membina rakit LEGO. Setiap rakit LEGO mewakili satu bahagian kod, dan arahan memberitahu kamu cara untuk menggabungkan mereka. Dalam Java, modul adalah seperti seksyen rakit yang sudah dibina – ia adalah koleksi kod yang berkaitan yang bekerja bersama untuk melakukan fungsi tertentu.
Dalam istilah teknikal, modul dalam Java adalah unit kod yang berdiri sendiri yang termasuk:
- Kelas dan antara muka
- Sumber (seperti gambar atau fail konfigurasi)
- Definisi yang jelas tentang apa yang diperlukan dari modul lain
- Pengisytiharan tentang apa yang disediakan kepada modul lain
Pikirkan tentang itu sebagai rak penyimpanan yang baik yang semua ada tempat dan tujuannya.
Fitur Sistem Modul Java
Sistem Modul Java, yang diperkenalkan dalam Java 9, membawa beberapa fitur yang menarik ke atas meja. Mari kita eksplor mereka satu persatu:
1. Penyulitan yang Kuat
Ingat ketika kamu masih kecil dan memiliki rak rahsia di mana kamu simpan harta kamu? Modul bekerja secara serupa. Mereka membolehkan kamu untuk memutuskan mana bahagian kod kamu yang terlihat oleh orang lain dan mana bahagian yang menjadi "harta rahsia" kamu.
module com.myapp.secretbox {
exports com.myapp.secretbox.api;
}
Dalam contoh ini, hanya kelas di dalam paket com.myapp.secretbox.api
yang terlihat oleh modul lain. Semua yang lain disembunyikan!
2. Konfigurasi yang Handal
Modul memberitahu dengan jelas apa yang diperlukan mereka dari modul lain. Ia seperti membuat senarai belanja sebelum pergi ke kedai runcit – kamu tahu persis apa yang kamu perlu, dan kamu tidak akan lupa apa-apa!
module com.myapp.kitchen {
requires com.myapp.fridge;
requires com.myapp.stove;
}
Di sini, modul kitchen
kita menyatakan bahwa dia perlu modul fridge
dan stove
untuk berfungsi dengan baik.
3. Prestasi yang Diperbaiki
Dengan modul, Java dapat menjadi lebih cerdas tentang memuat hanya kod yang diperlukan. Ia seperti membawa hanya pakaian yang kamu akan pakai untuk perjalanan, bukannya pakaian keseluruhan kamu!
Mendeklarasikan Modul
Sekarang, mari kita kunci tangan dan buat modul pertama kita. Kita akan mula dengan membuat fail yang dinamakan module-info.java
di root direktori kod sumber kita.
module com.myapp.greetings {
exports com.myapp.greetings.api;
}
Pengisytiharan ini membuat modul yang dinamakan com.myapp.greetings
dan menjadikan paket com.myapp.greetings.api
tersedia kepada modul lain.
Menambah Modul Bergantung
Kadang-kadang, modul kita mungkin perlu menggunakan kod dari modul lain. Kita boleh menetapkan dependensi ini menggunakan kata kunci requires
.
module com.myapp.greetings {
requires com.myapp.translations;
exports com.myapp.greetings.api;
}
Dalam contoh ini, modul greetings
kita perlu modul translations
untuk berfungsi dengan betul.
Menambah Modul Pilihan
Apakah jika kita memiliki modul yang baik untuk dimiliki tetapi tidak absolut harus? Itulah di mana modul pilihan menjadi berguna!
module com.myapp.greetings {
requires com.myapp.translations;
requires static com.myapp.fancyfonts;
exports com.myapp.greetings.api;
}
Kata kunci static
memberitahu Java bahwa modul fancyfonts
adalah pilihan. Modul greetings
kita akan bekerja tanpa itu, tetapi dia boleh menggunakan fancyfonts
jika tersedia.
Menambah Modul Transisi
Kadang-kadang, kita ingin meluluskan dependensi kita kepada modul yang bergantung kepada kita. Kita boleh melakukan ini menggunakan kata kunci transitive
.
module com.myapp.greetings {
requires transitive com.myapp.translations;
exports com.myapp.greetings.api;
}
Sekarang, setiap modul yang memerlukan com.myapp.greetings
secara otomatis akan mendapat akses kepada com.myapp.translations
juga.
Mengexport Kelas Umum
Ketika kita ingin membuat paket tertentu tersedia kepada modul lain, kita menggunakan kata kunci exports
.
module com.myapp.greetings {
exports com.myapp.greetings.api;
exports com.myapp.greetings.utils to com.myapp.testing;
}
Dalam contoh ini, kita membuat paket api
tersedia kepada semua modul, tetapi paket utils
hanya tersedia kepada modul com.myapp.testing
.
Membenarkan Refleksi
Kadang-kadang, kita perlu membenarkan modul lain untuk menggunakan refleksi pada kelas kita. Kita boleh melakukan ini dengan kata kunci opens
.
module com.myapp.greetings {
exports com.myapp.greetings.api;
opens com.myapp.greetings.internal to com.myapp.testing;
}
Ini membenarkan modul com.myapp.testing
untuk menggunakan refleksi pada kelas di dalam paket com.myapp.greetings.internal
.
Membuat dan Menggunakan Modul Java
Sekarang bahwa kita telah meliputi dasar-dasar, mari kita gabungkan semuanya dan buat aplikasi modular yang simple. Kita akan membuat dua modul: com.myapp.greetings
dan com.myapp.main
.
Mari kita buat modul com.myapp.greetings
pertama:
// module-info.java
module com.myapp.greetings {
exports com.myapp.greetings;
}
// com/myapp/greetings/Greeter.java
package com.myapp.greetings;
public class Greeter {
public static String greet(String name) {
return "Hello, " + name + "!";
}
}
Sekarang, mari kita buat modul com.myapp.main
yang menggunakan modul greetings
kita:
// module-info.java
module com.myapp.main {
requires com.myapp.greetings;
}
// com/myapp/main/Main.java
package com.myapp.main;
import com.myapp.greetings.Greeter;
public class Main {
public static void main(String[] args) {
System.out.println(Greeter.greet("Java Modules"));
}
}
Untuk mengkompil dan menjalankan aplikasi modular ini, kita menggunakan perintah berikut:
javac -d mods --module-source-path src $(find src -name "*.java")
java --module-path mods -m com.myapp.main/com.myapp.main.Main
Dan voilà! Anda baru saja membuat dan menjalankan aplikasi modular Java pertama anda.
Kesimpulan
Tahniah atas pengakhiran anda melalui pengenalan kepada Sistem Modul Java! Kita telah meliputi banyak ruang, dari memahami apa itu modul hingga membuat dan menggunakan mereka dalam aplikasi yang sebenar. Ingat, seperti belajar untuk mengendarai rakit, menguasai modul memerlukan latihan. Jangan takut untuk bereksperimen dan membuat kesilapan – itulah cara kita belajar terbaik!
Sebagai anda teruskan perjalanan Java anda, anda akan temukan bahwa modul membantu anda membuat aplikasi yang lebih teratur, aman dan efisien. Mereka adalah seperti bahan rahsia yang membawa kemahiran pemrograman anda dari baik ke baik.
Teruskan untuk mengkod, terus belajar, dan yang paling penting, bersenang-senang! Sampaijumpa lagi, happy modulating!
Credits: Image by storyset