Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialmichael lee
5,179 PointsWhat am I doing Wrong?
cannot understand what I am missing, please help I'm stuck in the first Challenge
public class Order {
private String itemName;
private int priceInCents;
private String discountCode;
public Order(String itemName, int priceInCents) {
this.itemName = itemName;
this.priceInCents = priceInCents;
}
public String normalizeDiscountCode(String discountCode){
this.discountCode = discountCode;
discountCode = discountCode.toUpperCase();
return discountCode;
}
public String getItemName() {
return itemName;
}
public int getPriceInCents() {
return priceInCents;
}
public String getDiscountCode() {
return discountCode;
}
public void applyDiscountCode(String discountCode) {
this.discountCode = discountCode;
discountCode = discountCode.normalizeDiscountCode(discountCode);
}
}
public class Example {
public static void main(String[] args) {
// This is here just for example use cases.
Order order = new Order(
"Yoda PEZ Dispenser",
600);
// These are valid. They are letters and the $ character only
order.applyDiscountCode("abc");
order.getDiscountCode(); // ABC
order.applyDiscountCode("$ale");
order.getDiscountCode(); // $ALE
try {
// This will throw an exception because it contains numbers
order.applyDiscountCode("ABC123");
} catch (IllegalArgumentException iae) {
System.out.println(iae.getMessage()); // Prints "Invalid discount code"
}
try {
// This will throw as well, because it contains a symbol.
order.applyDiscountCode("w@w");
}catch (IllegalArgumentException iae) {
System.out.println(iae.getMessage()); // Prints "Invalid discount code"
}
}
}
2 Answers
<noob />
17,062 PointsHi, what exactly was the problem?, here is the working code for the first task:
public class Order {
private String itemName;
private int priceInCents;
private String discountCode;
public Order(String itemName, int priceInCents) {
this.itemName = itemName;
this.priceInCents = priceInCents;
}
public String getItemName() {
return itemName;
}
public int getPriceInCents() {
return priceInCents
}
public String getDiscountCode() {
return discountCode;
}
public void applyDiscountCode(String discountCode) {
this.discountCode = normalizeDiscountCode(discountCode);
}
private String normalizeDiscountCode(String discountCode){
return discountCode.toUpperCase();
}
}
First u create the method that will a String and pass the discountCode as a parameter and inside the method u just return to upper case version of it. then u just need assign NormalizeDiscount code and the thing u want to normalize which is the discount code to the this.discountcode, doing this that way ensures that every discountCode we apply will be uppercased. hope this helps
<noob />
17,062 Pointsu put discount code in () because normalizeDiscoungCode takes a String which is the discount code an in order to apply a legitimate discount code u need to normalize the discount code first(normalize method takes the string and return a uppercase version of it)
Yusuf Mohamed
2,631 PointsThanks for the help. :)
Yusuf Mohamed
2,631 PointsYusuf Mohamed
2,631 PointsHey, I just got one question.
this.discountCode = normalizeDiscountCode(discountCode);
Why do we put discountCode into the parentheses?