编写饮料(Drink)类,包含名称(name)、茶底(tea)、价格(price)、主料(material)等属性。 要求使用封装完成该类,要有构造器。 编写mainO函数创建下列对象,将对象的各个属
时间: 2024-09-22 12:08:56 浏览: 40
好的,我可以帮你介绍如何在Java中编写一个名为`Drink`的类,用于表示饮料,并包含了名称、茶底、价格以及主料等属性。这里我们将使用封装原则,定义私有变量并提供相应的访问器和修改器方法。
```java
public class Drink {
// 封装属性
private String name;
private String teaBase; // 茶底
private double price;
private String mainIngredient; // 主料
// 构造器
public Drink(String name, String teaBase, double price, String mainIngredient) {
this.name = name;
this.teaBase = teaBase;
this.price = price;
this.mainIngredient = mainIngredient;
}
// 提供公共方法获取属性值 (getters)
public String getName() {
return name;
}
public String getTeaBase() {
return teaBase;
}
public double getPrice() {
return price;
}
public String getMainIngredient() {
return mainIngredient;
}
// 提供公共方法设置属性值 (setters),为了防止直接修改私有变量,我们可以添加一些验证逻辑
public void setName(String name) {
if (!Strings.isNullOrEmpty(name)) {
this.name = name;
} else {
throw new IllegalArgumentException("Name cannot be empty or null");
}
}
public void setTeaBase(String teaBase) {
if (!Strings.isNullOrEmpty(teaBase)) {
this.teaBase = teaBase;
} else {
throw new IllegalArgumentException("Tea base cannot be empty or null");
}
}
public void setPrice(double price) {
if (price > 0) {
this.price = price;
} else {
throw new IllegalArgumentException("Price must be a positive number");
}
}
public void setMainIngredient(String mainIngredient) {
this.mainIngredient = mainIngredient;
}
// 示例main方法
public static void main(String[] args) {
// 创建饮料实例
Drink greenTea = new Drink("绿玉如意", "绿茶", 25.0, "龙井茶叶");
Drink milkTea = new Drink("奶香丝滑", "红茶", 30.0, "牛奶");
// 输出饮料信息
System.out.println("Green Tea: Name - " + greenTea.getName() + ", Price - " + greenTea.getPrice());
System.out.println("Milk Tea: Name - " + milkTea.getName() + ", Price - " + milkTea.getPrice());
}
}
```
阅读全文