a. Create a class name Invoice that holds an invoice number, balance due, and three fields representing the month, day, and year when the database is due. Create a constructor that accepts values for all five data fields. Within the constructor, assign each argument to the appropriate field with the following exceptions:
In the Invoice class, include a display method that displays all the fields on an Invoice object. Save the file as Invoice.java.
b. Write an application containing main() method that declares several Invoice objects, proving that all the statements in the constructor operate as specified. Save the file as TestInvoice.java.
c. Modify the constructor in the Invoice class so that the day is not greater than 31, 30, or 28, depending on the month. For example, if a user tries to create an invoice for April 31, force it to April 30. Also, if the month is invalid, and thus forced to 0, also force the day to 0. Save modified Invoice class as Invoice2.java. Then modify the TestInvoice class to create Invoice2 object. Create enough objects to test every decision in the constructor. Save this file as TestInvoice2.java.