Answered step by step
Verified Expert Solution
Question
1 Approved Answer
In this assignment, you will apply encapsulation, inheritance, and polymorphism to the redesign of the electronic store from Assignment # 1 . A list of
In this assignment, you will apply encapsulation, inheritance, and polymorphism to the redesign
of the electronic store from Assignment # A list of the classes that must be contained in your
program and a summary of their state and behaviour is included below.
It is up to you to decide on and implement the appropriate class hierarchy. You will likely need
to add more classes to define the best class hierarchy look for shared statebehaviour
between different classes and define a parent class if you need to Note that you will not need
to defineimplement all these methodsattributes in each class if you make proper use of
inheritance. Additionally, you must use proper encapsulation in designing these classes. All
your instance variables should be private, unless you can justify them being protectedpublic
You should be able to complete the assignment without creating any publicprotected variables.
If you include a protectedpublic variable, also include a comment with your justification. You
can add additional methods eg gettersetter methods to the classes as you see fit. A large
portion of your mark will come from the quality of your class design and proper use of
encapsulation, inheritance, and polymorphism.
Three classes are included on the assignment page for testing. Your code should work with
these test case classes. When you run the test case classes, the output should be very similar
to the output included at the end of this document. The only difference may be in the formatting
of the objects, though your toString methods should closely mirror the formatting included
here. You should test your code with your own additional test cases as well. The supplied test
classes only provide a minimal amount of testing.
Desktop Class:
State:
double price represents how much the desktop costs
int stockQuantity represents how many units of this desktop are in stock
int soldQuantity represents how many units of this desktop have been sold
double cpuSpeed the CPU speed in Ghz
int ram the amount of RAM in GB
boolean ssd whether the harddrive is an SSD true or HDD false
int storage the size of the harddrive in GB
String profile a string describing the size of the desktop case
Behaviour:
Desktopdouble price, int quantity, double cpuSpeed, int ram, boolean ssd int
storage, String profile constructor for the class
double sellUnitsint amount simulates selling amount units. If there are
enough units in stock to meet the request, the quantity attributes must be
updated appropriately and the total revenue revenue units price should
be returned. If there are not enough units in stock, no sale should take place
and should be returned.
String toString returns a string representing the desktop. This should
summarize the state of the desktop, including each attribute. See the
example output included at the bottom for examples.
ElectronicStore Class:
State:
final int MAXPRODUCTS the maximum number of different product
instances that this store can contain. This value should be set to and
never changed. The code throughout your class should refer to this variable
so that the maximum number of products can be changed by changing the
value assigned to this variable.
String name the name of the electronics store
double revenue the total revenue the store has made through sales. This
should initially be but must be updated as products are sold.
The class must also store an array of electronic store products that is of size
MAXPRODUCTS.
Behaviour:
ElectronicStoreString name constructor for the class.
String getName returns the name of the store
boolean addProductProduct if there is space remaining in the products
array, this method should add to the products array at the next available
array slot and return true. If there is no space remaining in the products array,
this method should just return false.
boolean sellProducts this method should print out the store's products
see example output below for an idea of how it should look read an integer
from the user representing the product to sell ie what index in the products
array and read an integer from the user representing how many units of the
product to sell. You may assume the user will only enter integer numbers but
must verify that the values are valid eg a valid item index, an amount
greater than etc. If the values supplied by the user are valid, the specified
number of units of the specified product should be sold, if possible. All
appropriate variables must be updated in all instances eg revenue, number
of units in stock, etc. If any of the input is invalid, no sale should take place.
int storage the size of the harddrive in GB
double screenSize the size of the screen in inches
Behaviour:
Laptopdouble price, int quantity, double
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started