作業八:定義兩個類別, 用到繼承, 類別裡包含屬性和方法。 然後用類別生出物件 存取物件的屬性和呼叫物件的方法。

目的:練習定義類別、繼承類別、存取物件屬性及方法

// 定義一個名為 StockInventory 的類別
class StockInventory{
var itemNumber = String()
var name = String()
var inventory = Double()
var newInventory = Double()
var oldPrice = Double(400.0)
var cost = Double()
func accountSummary(newAdder: Double, paid: Double){
newInventory = (newAdder + inventory)
cost = paid * newInventory * 1000
print(name + itemNumber)
print("今日以 \(paid) 元,買進 \(newAdder) 張")
print("原有 \(inventory) 張")
print("總共持有 \(newInventory) 張")
print("持有成本 \(cost) 元")
}
}
// 定義一個名為 StockGain 的類別,並繼承 StockInventory
class StockGain: StockInventory{
var gain = Double()
var percentageNew = Double()
func percentageGain(newPrice: Double, oldPrice: Double){
percentageNew = (newPrice - oldPrice) / oldPrice * 100
print(name + itemNumber)
print("昨收 \(oldPrice) 元")
print("漲幅 \(percentageNew) %")
}
func revenue(newPrice: Double, oldPrice: Double, inventory: Double){
gain = (newPrice - oldPrice) * 1000 * inventory
print("今日獲利 \(gain) 元")
}
}
var stock1 = StockInventory() // 宣告一個名為 Stock1 的變數,類別為 StockInventory
stock1.itemNumber = "2412" // 宣告 Stock1 的 itemNumber
stock1.name = "中華電" // 宣告 Stock1 的 name
stock1.inventory = 1.0 // 宣告 Stock1 的 inventory 為 1.0
stock1.itemNumber // 存取屬性,得到 2412
stock1.name // 存取屬性,得到 中華電
stock1.accountSummary(newAdder: 1.0, paid: 19.0) // 呼叫方法
呼叫 stock1.accountSummary 後,顯示的結果
var stock2 = StockGain() // 宣告一個名為 Stock2 的變數,類別為 StockGain
stock2.itemNumber = "2330" // 宣告 Stock2 的 itemNumber
stock2.name = "台積電" // 宣告 Stock2 的 name
stock2.itemNumber // 存取屬性
stock2.name // 存取屬性
stock2.oldPrice // 存取屬性
stock2.accountSummary(newAdder: 2.0, paid: 400.0) // 呼叫方法
stock2.revenue(newPrice: 400.0, oldPrice: 400.0, inventory: 2)
呼叫 stock2.accountSummary 及 stock2.revenue 後,顯示的結果

--

--