The JAVA Encryption Assignment involves developing a program to map characters from the system's alphabet {a-z, 0-9, . , , !, } in a new order provided by the user. The program checks for correctness, ensuring each character maps uniquely and verifies no duplicates exist. It then prompts the user to enter a sentence that gets encrypted using these mappings; any character not within the given set results in an error. An encrypted output is displayed, with options to decrypt or exit. Users can either encrypt new sentences or decrypt previous ones, providing comprehensive functionality for encoding and decoding messages. The assignment includes creating a UML class diagram to visualize program components and methods such as encryption and decryption.