This material is somewhat more theoretical than that of previous topics, so instead of writing a program for this assignment, you are going to work on a design. Specifically, your task is to design a class to represent a credit card. Try to design your class such that it only includes fields and methods relative to a credit card itself, without branching out into related functionality, like that of a bank or a consumer. At the same time, try to make your class as complete as possible, so that it can be used in any application that involves a credit card. To complete this assignment, you will turn in a text document (Word or PDF) with the following information: • A list of the fields and methods of your class. For fields you will need to specify the type, the accessibility (private, public, etc), whether it is a static or instance field, and any limitations on the values (non-negative, always less than some other value, etc). For the methods, you will need to supply the return type and parameter type list. • A free-form description of what each field and method is meant to do, with explanation of any potentially confusing design decisions. • A justification for your design based on the guidelines given in section 10.11 of your textbook. The first two items will look somewhat similar to what was provided in the assignment description for Assignment 4. The justification will be somewhat similar to what was provided in the URL.java file included in this topic’s course materials (week10.jar). You do NOT need to implement your class (i.e. you do not need to write any code).