object orianted

The Task You have been given the task to create the basis for a system to help cinemas to handle its business. The system must work for a number of cinemas, for example being shared with New York and Las Vagas. It is important that you create an object-oriented solution for this task. Attributes (fields) need to be properly encapsulated and classes for different parts of the system must be created and sent to various other parts of the system. At the foundation of this system is the Cinema which holds the name of the cinema (like “Filmcity New York” or “TheaterPalace Las Vagas”) as well as an address. Each cinema consists of a number of screens, that is the rooms in which the film is projected and you need to keep track of the number of seats in each room. For each screen there is a show, that is the film that is shown in the room at a specific date and time. It is important to keep track of the date and time, but the time can be a simple integer representing the time of day as a whole number (that is, there is a showing at 18, another at 20 and so on). A Film is just that, a film like Fast and Furious 9 or Midnight Sun and we need to know the length and release year of all films. Each film needs to know at what times it is shown and on what cinemas. Remember that a film can be shown at different times during a day and in several screens in a day as well for example, the movie Midnight Sun can be shown at 18 on Screen 1 and at 19 on Screen 2. The important part here is that for each cinema, a class (presumably called Cinema), needs to be in control of connecting screens with show dates and films. This should be done in a method called createShowTime() which will need a number of parameters to work. This method, therefore, is the key method to set up the program (or list of films) for a specific cinema. Objects of other classes can be created in a main program and sent as parameters to the cinema. A part from that class, you will need at least three other classes, you decide which classes are needed to create the system. In the cinema class you also need a method called listShowsAtDate () that takes a date as parameter and returns an ArrayList<String> where each string is the information of when a film is shown and on which screen, for ex- ample Fast and Furious 9  at 18:00 in Room 1 and, as another string in the list, Ford vs Ferrari at 20 in Room 1. This is a way to see what films are shown at a specific date at a specific cinema. 
To hand in
To summarise, the following must be handed in:
Source code for all four classes plus a class with a main method that shows that the classes work.
The class Cinema with the methods detailed above, called createShowTime() and listShowsAtDate().
Three more classes in addition to Cinema.
All classes will need more methods than the listed above.
A well-encapsulated object oriented solution.