I'm just a beginner please help!
BlueJ accepts my code - there are no compilation errors.
But when i want to run the program it doesnt do what i wanted it to. It allows the user to answer the questions about the product and price but the skips to the output after the question of the category appears not letting the user specify the category.
What am i doing wrong?
My coding:
The class:
public class Product
{
private String name;
private double price;
private String category;
public Product(String Name , double Price, String Category)
{
name = Name;
price = Price;
category = Category;
}
public String getDescription()
{
String description = "";
if (category.equals("E"))
description = "Essential";
else if(category.equals("N"))
description = "Nice to have";
else if (category .equals("L"))
description = "Luxury";
else description = "Invalid";
return description;
}
public String getName()
{
return name;
}
public double getPrice()
{
return price;
}
public String getCategory()
{
return category;
}
}
The instance of the class:
import java.util.Scanner;
import javax.swing.JOptionPane;
public class testProduct
{
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
String control;
control = JOptionPane.showInputDialog("Do you want to continue (Yes[Y] / No[N])? ");
while (control.equals("Y"))
{
String name;
double price;
String category;
System.out.print("\nEnter the name of the product: ");
name = input.nextLine();
System.out.print("Enter the price of the product: ");
price = input.nextDouble();
System.out.print("Enter the category of the product (E, N or L): ");
category = input.nextLine();
Product myProduct = new Product(name , price , category);
System.out.println("\nName:\t\t" + myProduct.getName());
System.out.println("Price:\t\t" + "R " + myProduct.getPrice());
System.out.println("Category:\t" + myProduct.getDescription());
control = JOptionPane.showInputDialog("Do you want to continue (Yes[Y] / No[N])? ");
}
}
}
My task was:
Assignment 2
Write a class called Product
- with a constructor receiving a name, price and category(E, N or L).
- Declare three private instance fields: name, price and category.
- Write a method getDescription to return a description of the category. The following criteria are used: E is Essential, N is Nice to have, L is Luxury and any other category is Invalid.
- Write get methods to return each of the instances fields.
In the testProduct class:
Write code to do the following. For each product:
- Ask the user whether he/she wants to continue (Yes or No) to control the loop.
- Ask the user to enter the name, price and category.
- Create a product object called myProduct. Initialize the object with the name, price and category.
- Call the getDescription method to get and display the description of the product.
- Use the get methods to display the information.
Thank YOU!!