// 定義春水堂飲料類別
class ChunShuiTangBeverage {
var name: String = "未知飲料"
var volume: Int = 0
var price: Double = 0.0
var isSweet: Bool = true
var isIced: Bool = true
var hasToppings: Bool = false
var teaType: String = "未知茶類"
var milkType: String = "未知奶類"
var sugarLevel: String = "正常糖"
var iceLevel: String = "正常冰"
}
// 創建兩個春水堂飲料物件
let beverage1 = ChunShuiTangBeverage()
let beverage2 = ChunShuiTangBeverage()
// 修改物件的屬性
beverage1.name = "珍珠奶茶"
beverage1.volume = 700
beverage1.price = 50.0
beverage1.isSweet = true
beverage1.isIced = true
beverage1.hasToppings = true
beverage1.teaType = "紅茶"
beverage1.milkType = "鮮奶"
beverage1.sugarLevel = "少糖"
beverage1.iceLevel = "少冰"
beverage2.name = "綠茶拿鐵"
beverage2.volume = 500
beverage2.price = 45.0
beverage2.isSweet = false
beverage2.isIced = false
beverage2.hasToppings = false
beverage2.teaType = "綠茶"
beverage2.milkType = "蒸氣牛奶"
beverage2.sugarLevel = "無糖"
beverage2.iceLevel = "熱"
// 印出物件屬性的內容
print("春水堂飲料1: \(beverage1.name), \(beverage1.volume)毫升, \(beverage1.price)元, 甜:\(beverage1.isSweet), 冰:\(beverage1.isIced), 加料:\(beverage1.hasToppings), 茶類:\(beverage1.teaType), 奶類:\(beverage1.milkType), 糖度:\(beverage1.sugarLevel), 冰度:\(beverage1.iceLevel)")
print("春水堂飲料2: \(beverage2.name), \(beverage2.volume)毫升, \(beverage2.price)元, 甜:\(beverage2.isSweet), 冰:\(beverage2.isIced), 加料:\(beverage2.hasToppings), 茶類:\(beverage2.teaType), 奶類:\(beverage2.milkType), 糖度:\(beverage2.sugarLevel), 冰度:\(beverage2.iceLevel)")
// 定義春水堂飲料類別
class ChunShuiTangBeverage {
var name: String = "未知飲料"
var volume: Int = 0
func getDescription() -> String {
return "飲料名稱:\(name),容量:\(volume)毫升"
}
func drink(_ amount: Int) {
if amount <= volume {
volume -= amount
print("喝了 \(amount) 毫升,剩餘容量:\(volume)毫升")
} else {
print("喝的量超過剩餘容量!")
}
}
func refill(_ amount: Int) {
volume += amount
print("補充了 \(amount) 毫升,目前容量:\(volume)毫升")
}
func changeName(_ newName: String) {
name = newName
print("飲料名稱已更改為:\(name)")
}
func empty() {
volume = 0
print("將飲料倒掉,目前容量:\(volume)毫升")
}
}
// 使用類別創建物件
let chunShuiTangBeverage = ChunShuiTangBeverage()
// 存取物件的屬性
chunShuiTangBeverage.name = "珍珠奶茶"
chunShuiTangBeverage.volume = 500
// 呼叫物件的方法
print(chunShuiTangBeverage.getDescription())
chunShuiTangBeverage.drink(300)
chunShuiTangBeverage.refill(200)
chunShuiTangBeverage.changeName("綠茶拿鐵")
chunShuiTangBeverage.empty()
// 定義 Fruit 父類別
class Fruit {
var name: String = "未知水果"
var color: String = "未知顏色"
func description() {
print("這是一個\(color)的\(name)。")
}
}
// 定義 Apple 子類別,繼承自 Fruit
class Apple: Fruit {
// 在子類別中宣告新的屬性並設定初始值
var variety: String = "富士"
func eat() {
print("咬了一口\(variety)品種的\(name),真好吃!")
}
}
// 定義 Banana 子類別,繼承自 Fruit
class Banana: Fruit {
// 在子類別中宣告新的屬性並設定初始值
var length: Double = 15.0
func peel() {
print("剝開長度為 \(length) 厘米的\(name)的皮,準備吃了。")
}
}
// 創建 Apple 和 Banana 物件
let apple = Apple()
let banana = Banana()
// 調用方法
apple.description()
apple.eat()
banana.description()
banana.peel()