Object-oriented programming · interview question
Given a class with a price field, how can you ensure the price is never negative?
Multiple choiceHardchapter-3-curatedpremiumoopinvariants-and-validation
class Product {
private final double price;
public Product(double price) {
if (price < 0) throw new IllegalArgumentException("Price must be non-negative");
this.price = price;
}
}Answer and explanation
Correct answer
A. Make the price a final field with initial validation.
Why
By making the price field final and validating it upon construction, you ensure that the price can never be set to a negative value, adhering to object invariants.
Test yourself on Object-oriented programming
A free test with instant, explained results. No account needed.
More Object-oriented programming questions
- In a typical e-commerce application, how should a CartItem object access the price of a Product?
- What design principle is violated if a Cart class directly manipulates a Product's price?
- Why might CartItem hold a Product reference instead of copying every product field into loose variables?
- In the context of e-commerce, which class is most likely to contain a method called calculateTotalPrice()?
- What access modifier should be used for fields to adhere to encapsulation principles?
- How would you explain a key reason to use encapsulation when designing an object with multiple responsibilities in an…