
Java Programming Problem 2 – Message Encoder, Decoder
Create an interface MessageEncoder that has a single abstract method encode(plainText), where plainText is the message to be encoded. The method will return the encoded message.
Create a class SubstitutionCipher that implements the interface MessageEncoder, as described above. The constructor should have one parameter called shift. Define the method encode so that each letter is shifted by the value in shift. Defne the method encode so that each letter is shifted by the value in shift. For example, if shift is 3, a will be replaced by d, b will be replaced by e, c will be replaced by f, and so on. (Hint: You may wish to define a private method that shifts a single character.)
Create a class ShuffleCipher that implements the interface MessageEncoder, as described above. The constructor should have one parameter called n. Define the method encode so that the message is shuffled n times. To perform one shuffle, split the message in half and then take characters from each half alternately. For example, if the message is abcdefghi, the halves are abcde and fghi. The shuffled message is afbgchdie. (Hint: You may wish to define a private method that performs one shuffle.)
Create an interface MessageDecoder that has a single abstract method decode(cipherText), where cipherText is the message to be decoded. The method will return the decoded message. Modify the classes SubstitutionCipher and ShuffleCipher, as described in Programming , above, so that they implement MessageDecoder as well as the interface MessageEncoder described above. Finally, write a program that allows a user to encode and decode messages entered on the keyboard.

Trending nowThis is a popular solution!
Step by stepSolved in 2 steps with 4 images

- JAVA CODE Write a java set of classes that could be used to do simple calculations on geometricobjects. The set should include the following classes: a) Shapes ,containing abstract methods( a methods that is declared without animplementation) area and perimeter b) Rectangle, a subclass of Shape, containing a constructor (with parameters forlength and width) along with methods area and perimeter. c) Triangle, a subclass of Shape, containing a constructor (with parameters for the three sides of a triangle) along with methods area ( s = (a+b+c)/2, A = sqrt( s(s-a)(s-b)(s-c) ) ) and perimeter d) Square, a subclass of Rectangle, containing a constructor (with a parameter for thelength of a side) and methods that invoke the methods of the Rectangle class todetermine the perimeter and area of a square.arrow_forward1. An abstract class called Pet is defined below: public abstract class Pet{ private String id;private String name; private static int count = 0; public Pet(String name) { count++; id = "P" + count; this.name = name; } public String toString() { return "ID: " + id + ", Name: " + name; } abstract public void sound();} The Cat class is a subclass of the Pet class. The class specifications are given below:• It has a private field named age to record the cat’s age.• The class constructor sets both name and age fields of the cat with the given parameter values. The field age is set to 0 if the given value is negative. • It provides an accessor method for the field age. • It overwrites the toString method to return a string consisting of the cat’s ID, nameand age. e.g.ID: P15, Name: Molly, Age: 4• It prints out "Miaow" in a terminal when the method sound is called. Define the Cat class in full.arrow_forwardDesign ADT for a cave and a cave system. An archeologist should be able to add a newly discovered cave to a cave system and to connect two caves together by a tunnel. Duplicate caves—based on GPS coordinates—are not permitted. Archeologists should also be able to list the caves in a given cave system. Specify each ADT operation by stating its purpose, describing its parameters, and writing a pseudocode version of its header. Then Java interface for a cave's methods and one for the methods of a cave system. Include javadoc-style comments in your code. Java programarrow_forward
- Java Programming Following the specifications given in the following detailed UML diagram, develop or modify all required classes: Design the Payroll interface, having the following two methods: calculateMonthlyGrossPay(): double displayPayInfo(): void - displays the information of the employee, followed by the information about the pay for a month Modify Person.java to show that it implements Payroll interface - you will not implement the interface methods here, which will change the type of class Person is; Modify Student, Employee, and Faculty to express the fact that they inherit behavior from Person that includes Payroll. You do not implement any of the methods from the Payroll interface in any of these classes. Design Graduate class as a subclass of Student. This class inherits the attributes and behavior of Student. The class has an additional attribute: department: String - the department student is registered in. Create the accessor and mutator methods for a new…arrow_forwardPLZ help with the following: True/False In java it is possible to throw an exception, catch it, then re-throw that same exception if it is desired GUIs are windowing interfaces that handle user input and output. An interface can contain defined constants as well as method headings or instead of method headings. When a recursive call is encountered, computation is temporarily suspended; all of the information needed to continue the computation is saved and the recursive call is evaluated. Can you have a static method in a nonstatic inner class?arrow_forward17. Create a class ShuffleCipher that implements the interface MessageEncoder, as described in Exercise 15. The constructor should have one parameter called n. Define the method encode so that the message is shuffled n times. To perform one shuffle, split the message in half and then take characters from each half alternately. For example, if the message is abcdefghi, the halves are abcde and fghi. The shuffled message is afbgchdie. (Hint: You may wish to define a private method that performs one shuffle.)arrow_forward
- Write the implementation of the Java classes based on the following UML diagram. (a) Define the method IncreTotSpecies) to increment the data field totalSpecles (b) Define the method printColor) to print the data field color (c) Override the method printColor) in the class Falcon to print the data fields featherColor, beakColor Birds +color: String +foodHabit: String +totalSpecies: int -skeleton: String +Birds () +Birds(color: String, foodHabit: String, skeleton: String) +increTotSpecies (): void +printColor (): void Falcon -featherColor: String -beakColor: String +Falcon (featherColor: String, beakColor: String) +printColor (): voidarrow_forward15. Create an interface MessageEncoder that has a single abstract method encode (plainText), where plainText is the message to be encoded. The method will return the encoded message.arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





