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!

Java - Module System

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:

  1. Kelas dan antara muka
  2. Sumber (seperti gambar atau fail konfigurasi)
  3. Definisi yang jelas tentang apa yang diperlukan dari modul lain
  4. 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