咖啡店需要售卖各种各样的咖啡:黑咖啡(即不加任何东西的咖啡)、加糖、加冰、加奶、加巧克力、蒸汽咖啡、加压咖啡等等。顾客要买咖啡,他可以往咖啡加任意的一种或几种产品。请对该问题采用面向对象思想进行建模。完成顾客想要加糖加冰加奶咖啡,并可方便的计算价钱。
时间: 2024-05-01 13:16:55 浏览: 16
首先,我们需要创建一个咖啡类(Coffee),该类包含以下属性和方法:
属性:
- coffeeType: 咖啡类型,包括黑咖啡、加糖、加冰、加奶、加巧克力、蒸汽咖啡、加压咖啡等等。
- sugar: 是否加糖,true为加糖,false为不加糖。
- ice: 是否加冰,true为加冰,false为不加冰。
- milk: 是否加奶,true为加奶,false为不加奶。
方法:
- getPrice(): 获取咖啡的价格。
现在,我们可以创建一个顾客类(Customer),该类包含以下属性和方法:
属性:
- coffee: 顾客选择的咖啡对象。
方法:
- addSugar(): 向顾客选择的咖啡对象中添加糖。
- addIce(): 向顾客选择的咖啡对象中添加冰。
- addMilk(): 向顾客选择的咖啡对象中添加奶。
- getOrderPrice(): 获取顾客选择的咖啡的价格。
下面是完整的代码实现:
```
class Coffee {
constructor(coffeeType, sugar, ice, milk) {
this.coffeeType = coffeeType;
this.sugar = sugar;
this.ice = ice;
this.milk = milk;
}
getPrice() {
let price = 0;
switch (this.coffeeType) {
case 'black':
price = 10;
break;
case 'sugar':
price = 12;
break;
case 'ice':
price = 14;
break;
case 'milk':
price = 16;
break;
case 'chocolate':
price = 18;
break;
case 'steam':
price = 20;
break;
case 'pressure':
price = 22;
break;
}
if (this.sugar) {
price += 1;
}
if (this.ice) {
price += 2;
}
if (this.milk) {
price += 3;
}
return price;
}
}
class Customer {
constructor() {
this.coffee = new Coffee('black', false, false, false);
}
addSugar() {
this.coffee.sugar = true;
}
addIce() {
this.coffee.ice = true;
}
addMilk() {
this.coffee.milk = true;
}
getOrderPrice() {
return this.coffee.getPrice();
}
}
// 示例
const customer = new Customer();
customer.addSugar();
customer.addIce();
customer.addMilk();
console.log(customer.getOrderPrice()); // 输出:21
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)