given the following code public class RetailItemDemo { public static void main(S
ID: 3533779 • Letter: G
Question
given the following code
public class RetailItemDemo
{
public static void main(String[] args)
{
// Create the first item. Use the no-arg constructor.
RetailItem item1 = new RetailItem();
item1.setDescription("Jacket");
item1.setUnitsOnHand(12);
item1.setPrice(59.95);
// Create the second item. Use the constructor
// to initialize the fields.
RetailItem item2 =
new RetailItem("Designer Jeans", 40, 34.95);
// Create the third item. Use the no-arg constructor.
RetailItem item3 = new RetailItem();
item3.setDescription("Shirt");
item3.setUnitsOnHand(20);
item3.setPrice(24.95);
// Display the info for item1.
System.out.println("Item #1");
System.out.println("Description: " + item1.getDescription());
System.out.println("Units on hand: " + item1.getUnitsOnHand());
System.out.println("Price: " + item1.getPrice());
// Display the info for item2.
System.out.println(" Item #2");
System.out.println("Description: " + item2.getDescription());
System.out.println("Units on hand: " + item2.getUnitsOnHand());
System.out.println("Price: " + item2.getPrice());
// Display the info for item3.
System.out.println(" Item #3");
System.out.println("Description: " + item3.getDescription());
System.out.println("Units on hand: " + item3.getUnitsOnHand());
System.out.println("Price: " + item3.getPrice());
}
}
public class RetailItem
{
private String description; // Item description
private int unitsOnHand; // Number of units on hand
private double price; // Unit price
/**
This constructor initializes the item's
description with an empty string, units on hand
to 0, and price to 0.0.
*/
public RetailItem()
{
description = "";
unitsOnHand = 0;
price = 0.0;
}
/**
This constructor initializes the item's
description, units on hand, and price with
values passed as arguments.
@param d The item's description.
@param u The number of units on hand.
@param p The item's price.
*/
public RetailItem(String d, int u, double p)
{
description = d;
unitsOnHand = u;
price = p;
}
/**
The setDescription method sets the item's
description.
@param d The item's description.
*/
public void setDescription(String d)
{
description = d;
}
/**
The setUnitsOnHand method sets the item's
number of units on hand.
@param u The number of units on hand.
*/
public void setUnitsOnHand(int u)
{
unitsOnHand = u;
}
/**
The setPrice method sets the item's price.
@param p The item's price.
*/
public void setPrice(double p)
{
price = p;
}
/**
The getDescription method returns the item's
description.
@return The item's description.
*/
public String getDescription()
{
return description;
}
/**
The getUnitsOnHand method returns the item's
number of units on hand.
@return The units on hand.
*/
public int getUnitsOnHand()
{
return unitsOnHand;
}
/**
The getPrice method rerurns the item's price.
@return The item's price.
*/
public double getPrice()
{
return price;
}
}
this program holds data pertaining to a retail item. write an exception class that can be instantiated and thrown when a negative number is given for the price.
write another exception class that can be instantiated and thrown when a negative number is given for the units on hand. demonstrate the exception classes in a program.
can somebody help me with this, im not good with exceptions thanks
Explanation / Answer
// EXCEPTON CLASSES DECLARED AT THE BOTTOM
// EXCEPTON CLASSES USED in the setPrice() and setUnitsatHand() function of class retailItem
public class RetailItemDemo
{
public static void main(String[] args)
{
// Create the first item. Use the no-arg constructor.
RetailItem item1 = new RetailItem();
item1.setDescription("Jacket");
item1.setUnitsOnHand(12);
item1.setPrice(59.95);
// Create the second item. Use the constructor
// to initialize the fields.
RetailItem item2 =
new RetailItem("Designer Jeans", 40, 34.95);
// Create the third item. Use the no-arg constructor.
RetailItem item3 = new RetailItem();
item3.setDescription("Shirt");
item3.setUnitsOnHand(20);
item3.setPrice(24.95);
// Display the info for item1.
System.out.println("Item #1");
System.out.println("Description: " + item1.getDescription());
System.out.println("Units on hand: " + item1.getUnitsOnHand());
System.out.println("Price: " + item1.getPrice());
// Display the info for item2.
System.out.println(" Item #2");
System.out.println("Description: " + item2.getDescription());
System.out.println("Units on hand: " + item2.getUnitsOnHand());
System.out.println("Price: " + item2.getPrice());
// Display the info for item3.
System.out.println(" Item #3");
System.out.println("Description: " + item3.getDescription());
System.out.println("Units on hand: " + item3.getUnitsOnHand());
System.out.println("Price: " + item3.getPrice());
}
}
public class RetailItem
{
private String description; // Item description
private int unitsOnHand; // Number of units on hand
private double price; // Unit price
/**
This constructor initializes the item's
description with an empty string, units on hand
to 0, and price to 0.0.
*/
public RetailItem()
{
description = "";
unitsOnHand = 0;
price = 0.0;
}
/**
This constructor initializes the item's
description, units on hand, and price with
values passed as arguments.
@param d The item's description.
@param u The number of units on hand.
@param p The item's price.
*/
public RetailItem(String d, int u, double p)
{
description = d;
unitsOnHand = u;
price = p;
}
/**
The setDescription method sets the item's
description.
@param d The item's description.
*/
public void setDescription(String d)
{
description = d;
}
/**
The setUnitsOnHand method sets the item's
number of units on hand.
@param u The number of units on hand.
*/
// USING EXCEPTON CLASSES
public void setUnitsOnHand(int u)
{
if(u<0)
{
try{
throw new NegativeUnitException();
// throw is used to create a new exception and throw it.
}
catch(NegativeUnitException e){
System.out.println(e) ; }
}
else
{
unitsOnHand = u;
}
}
/**
The setPrice method sets the item's price.
@param p The item's price.
*/
// USING EXCEPTON CLASSES
public void setPrice(double p)
{
if(p<0)
{
try{
throw new NegativePriceException();
// throw is used to create a new exception and throw it.
}
catch(NegativePriceException e){
System.out.println(e) ; }
}
else
{
price = p;
}
}
/**
The getDescription method returns the item's
description.
@return The item's description.
*/
public String getDescription()
{
return description;
}
/**
The getUnitsOnHand method returns the item's
number of units on hand.
@return The units on hand.
*/
public int getUnitsOnHand()
{
return unitsOnHand;
}
/**
The getPrice method rerurns the item's price.
@return The item's price.
*/
public double getPrice()
{
return price;
}
}
//EXCEPTON CLASSES
class NegativePriceException extends Exception {
NegativePriceException() { }
public String toString(){
return ("Don't allow negative number to be a price ") ;
}
}
class NegativeUnitException extends Exception {
NegativeUnitException() { }
public String toString(){
return ("Don't allow negative number to be a unit ") ;
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.