Question: Help me with is in Java A total of four classes: the driver, Bill, BillingItem, and BillingSubItem. Bill class: o Must have 4 fields: 1
Help me with is in Java
A total of four classes: the driver, Bill, BillingItem, and BillingSubItem.
Bill class:
o Must have fields:
An ArrayList which holds BillingItems, called items
A static integer called nextId initialized at
An integer called id
A static double called taxPercentage initialized at
o It must only feature the default constructor, which initializes the arraylist, sets id with the value of nextId, and then increments nextId by
o It must feature the following methods:
setTax which is static, takes in a double, and returns nothing. The double in the parameter updates taxPercentage only if the parameter is greater than or equal to Otherwise, this method does nothing.
A getter for taxPercentage, which is static.
addItem which takes in a BillingItem and returns nothing. It adds said item to items.
removeItem which takes in a BillingItem and returns nothing. It removes said item from items.
getItem which takes in an integer and returns a BillingItem. If the integer in the parameter is within the bound of items, getItemreturns the item in that position. Otherwise, return null.
seeItems which takes in nothing and returns a string. If items is empty, this method returns an empty string. Otherwise, it will return a list of all the items in items in the following format:
POSITION. ITEMDESCRIPTION: $ITEMAMOUNT
eg: The bill below with items, when calling seeItems would return the following string:
Item : $
Item : $
Item : $
calculateSubTotal which takes in nothing and returns a double. This method adds the amount of all BillingItems stored inside of items and then returns this summation.
calculateTotal which takes in nothing and returns a double. This method adds the amount of all BillingItems stored inside of items and then returns this summation multiplied by the tax percentage.
NOTE: The tax percentage is stored as a percentage eg: for
This means you will have to convert it to the appropriate
decimal number before you can use it to calculate your total. In the
example above, if taxPercentage is then you would multiply your
subtotal by to get the total.
An override of toString This override must contain the following
information:
The Bills id in its own line
Every BillingItem in the Bill which you can retrieve by calling every
BillingItems toString each in its own line
The subtotal, in its own line
The total, in its own line
BillingItem class
o Must have fields:
An ArrayList which holds BillingSubItems, called subitems
A double called amount
A string called description
o It must have constructors:
The default constructor, which initializes all fields with or an empty string, as appropriate.
An overloaded constructor, which takes in a double to initialize amount, and
initializes description with an empty string.
An overloaded constructor, which takes in a double to initialize amount and
a string to initialize description.
All constructors should initialize subitems.
o It must have the following methods:
getAmount which takes in nothing and returns a double. If subitems is
empty, it returns amount. Otherwise, this method adds up the amount of all
of the BillingSubItems in subitems, returning that summation. If subitems
has elements in it do not add the BillingItems amount to the
summation.
setAmount which takes in a double and returns nothing. It updates the
value in amount with the value in the parameter. Note that no guard for the
input is necessary, as we want to allow for negative values in case we want
to offer a discount on something.
addSubItem which takes in a BillingSubItem and returns nothing, adding
it to subitems.
removeSubItem which takes in a BillingSubItem and returns nothing,
removing it from subitems.
getSubItem which takes in an integer and returns a BillingSubItem. If the integer is in bounds of subitems, return the BillingSubItem at that position. Otherwise, return null.
seeSubItems which takes in nothing and returns a string. This method works exactly as seeItems in Bill, but it uses the BillingSubItems stored inside subitems.
A getter and a setter for description.
An overload of toString If the BillingItem has no BillingSubItems, it will simply return its description and its amount. If the BillingItem does have BillingSubItems, it must return:
Its own description, in its own line
Every BillingSubItem in the BillingItem which you can retrieve by
calling every BillingSubItems toString each in its own line
Every BillingSubItem must be preceded by a tab character t
eg: There are Billing Items below. The first one has no
BillingSubItems, while the second one has
Item : $
Item
SubItem : $
SubItem : $
BillingSubItem class:
o
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
