Question #2-Rational Numbers (30pts) Create a class called Rational for performing arithmetic with fractions. Write a program to test your class. Use integer variables to represent the private instance variable of the class-the numerator and the denominator. Provide a constructor that enables an obiect of this class to be initialized when it is declared. The Constructor should store the fraction in reduced form (the fraction 2/4 is equivalent to and would be stored as the object 1 in the numerator and 2 in the denominator). Provide a no-argument constructor with defaults values in case no initializers are provided. Provide public methods that perform each of the following operations a) Add two Rational numbers b) Subtract two rational numbers c) Multiply two rational numbers d) Divide two rational numbers e) Return a String representing of a rational number in the form a/b (where a is the numerator and b is the denominator) Part 2- Manipulating arrays Question#3 (30pts) Write a method called contains that accepts two arrays of integers al and a2 as parameters and that returns a Boolean value indicating whether or not the sequence of elements in a2 appears in al (true for yes, false for no). The sequence must appear consecutively and in the same order For example: consider the following arrays: int[] listl6, 2, 1,4, 1,2,1, 8 intlist2 ,2, 1;The call of contains(list, list2) should return true because the sequence of values in list2 1, 2, 1 is contained in listl starting at index 5. If list2 had stored the values 2,1, 2, the call of contains (listl, list2) would return false. Any two lists with identical elements are considered to contain each other. Every array contains the empty array, and the empty array does not contain any arrays other than the empty array itself. Each program will be graded based on the following