Consider the following problems, design the algorithms that would solve them, and then implement the algorithm in Java.Problem 1:Design and implement a class called Flight that represents an airline flight. It should contain instance data that represents the airline name, flight number, and the flight’s origin and destination cities. Define the Flight constructor to accept and initialize all instance data. Include getter and setter methods for all instance data. Include a toString method that returns a one-line description of the flight. Create a driver class calledFlightTest, whose main method instantiates and updates several Flight objects.Problem 2:Define a class called Counter. An object of this class is used to count things so it records a count that is a non-negative whole number. Include methods to set the counter to 0, to increase the counter by 1, and to decrease the counter by 1. Be sure that no method allows the value of the counter to become negative. Also include an accessor method that returns the current count value, as well as a method that displays the count on the screen. Do not define an input method. The only method that can set the counter is the one that sets it to zero. Write a program to test your class definition. (Hint: you need only one instance variable).Problem 3:Using the Die class defined in the document,Die.java, design and implement a class called PairOfDice, composed of two Die objects. Include methods to set and get the individual die values, a method to roll the dice, and a method that returns the current sum of the two die values. Create a driver class called RollingDice2 to instantiate and use a PairOfDice object.Problem 4:Consider a class that could be used to play a game of hangman. The class has the following attributes:The secret wordThe disguised word, in which each unknown letter in the secret word is replaced with a question mark (?). For example, if the secret word is abracadabra, and the letters a , and b have been guessed, the disguised word would be ab?a?a?ab?aThe number of guesses madeThe number of incorrect guessesIt will have the following methods:MakeGuess(c) guesses that character c is in the wordgetDisguisedWord returns a string containing correctly guessed letters in their correct positions and unknown letters replaced with ?getSecretWord returns the secret wordgetGuessCount returns the number of guesses madeisFound returns true if the hidden word has been discovered.Perform the following actions:Write a method heading for each method.Write preconditions and postconditions for each method.Write some Java statements that test the class.Implement the class.List any additional methods and attributes needed in the implementation that were not listed in the original design. List any other changes made to the original design.Write a program that implements the game of handgman, using the class you wrote for part d.Problem 5:Consider a class Movie that contains information about a movie. The class has the following attributes:The movie nameThe MPAA rating (e.g. G, PG, PG-13, R)The number of people that have rated this movie as a 1 (Terrible)The number of people that have rated this movie as a 2 (Bad)The number of people that have rated this movie as a 3 (OK)The number of people that have rated this movie as a 4 (Good)The number of people that have rated this movie as a 5 (Great)Implement the class with accessors and mutators for the movie name and MPAA rating. Write a method addRating that takes an integer as an input parameter. The method should verify that the parameter is a number between 1 and 5, and if so, increment by one the number of people rating the movie that matches the input parameter. For example, if 3 is the input parameter, then the number of people that rated the movie as a 3 should be incremented by one. Write another method, getAverage, that returns the average value for all the movie ratings.Test the class by writing a main method that creates at least two movie objects, adds at least five ratings for each movie, and output the movie name, MPAA rating, and average rating for each movie object.All in total it should be5 Algorithms5 Java Programs5 Screenshots