定義兩個類別, 用到繼承, 類別裡包含屬性和方法。 然後用類別生出物件 存取物件的屬性和呼叫物件的方法。
Published in
9 min readJun 12, 2022
目的:練習定義類別、繼承類別、存取物件屬性及方法
給個示意圖比較一下….
web1
web2
用程式大概抓出來想的東西…
// 定義一個名為 AircraftList 的類別
class AircraftList {
var nameMake = String()
var typeNumber = String()
var mode = String()
var year = String()
var postTotalTime = Double()
var location = String()
var salePrice = Double()
var contactNumber = String()
var personal = String()
var company = String()
var infromationShow = String() //基本資料
var web1 = URL(string: "https://www.trade-a-plane.com/search?category_level1=Single+Engine+Piston&make=CESSNA&model=R172XP&listing_id=2405736&s-type=aircraft") // 網站
// 功能用『文字』的方式呈現
var detailOfAircraft = String()func detailOfAircraft(usedPrice:Double , overhaulHours:Double){
infromationShow =
("\(postTotalTime)小時 且 售價位於 $\(salePrice) dollar")
print("由 \(web1) 找到一架飛機 \(infromationShow)")
print("這個價位 $\(usedPrice)美元的 \(nameMake)")
print("位在 \(location) \(company) \(contactNumber),目前
只有一架")
}
定義一個名為 AnotherAircraft 的類別,並繼承 AircraftList
class AnotherAircraft: AircraftList{
var totoaltimeDifferance = Double()
var yearDifferance = String()
var pricingDifferent = Double()
var feel = String()
var web2 = URL(string: "https://www.trade-a-plane.com/search?category_level1=Single+Engine+Piston&make=CESSNA&model=152&listing_id=2406026&s-type=aircraft")// 網站
再用方法(功能)
func moneyDifferent (web1Price:Double ,web2Price:Double){
pricingDifferent = (web1Price - web1Price)
print("由搜尋 \(web1)和 \(web2)得知 \(infromationShow)")
print("所得到的價差落在 $\(pricingDifferent) ,由於 \(year)比較
難找所以看下一個")
print("結論就是 \(feel)")
}
func totoaltimeDifferance
(web1TotalTime:Double , web2TotalTime:Double){
postTotalTime = (web1TotalTime - web2TotalTime)
print("兩者差 \(postTotalTime)小時....")
print("結論就是 \(feel)")
}
以上大致上設定好後…要有值或是東西呈現 要有以下:
var search1 = AircraftList()
//宣告一個名為 search1 的變數,類別為 AircraftListsearch1.nameMake = "Cessna"
// 宣告 search1 的 nameMake 名字search1.typeNumber = "R172XP"
// 宣告 search1 的 typeNumber 型號search1.year = "1980"
// 宣告 search1 的 year 年份search1.postTotalTime = 2092
// 宣告 search1 的 postTotalTime 刊登發動機時數search1.location = "Kennett, MO USA"
// 宣告 search1 的 location 位置search1.salePrice = 160000
// 宣告 search1 的 salePrice 價位search1.company = "Jewell Aviation Inc."
// 宣告 search1 的 company 公司search1.contactNumber = " (573) 888-5846"
// 宣告 search1 的 contactNumber 聯繫電話
之後再存取屬性:
search1.nameMake // 存取屬性得到 Cessnasearch1.typeNumber // 存取屬性得到 R172XPsearch1.year // 存取屬性得到 1980search1.postTotalTime // 存取屬性得到 2092search1.location // 存取屬性得到 Kennett, MO USAsearch1.salePrice // 存取屬性得到 160000search1.company // 存取屬性得到 Jewell Aviation Inc.search1.contactNumber // 存取屬性得到 (573) 888-5846search1.detailOfAircraft(usedPrice: 160000, overhaulHours: 2092) // 呼叫方法
就會自動跳出彈出視窗就可以看到相關資訊
再一次設定別的屬性:
var search2 = AnotherAircraft()
//宣告一個名為 s2 的變數,類別為 AircraftListsearch2.nameMake = "Cessna"
// 宣告 s2 的 nameMake 名字search2.typeNumber = "152"
// 宣告 s2 的 typeNumber 型號search2.year = "1981"
// 宣告 s2 的 year 年份search2.postTotalTime = 10173
// 宣告 s2 的 postTotalTime 刊登發動機時數search2.location = "New Orleans, LA USA"
// 宣告 s2 的 location 位置search2.salePrice = 49900
// 宣告 s2 的 salePrice 價位search2.personal = "Ankur Hukmani"
// 宣告 s2 的 personal 個人search2.contactNumber = "email"
// 宣告 s2 的 contactNumber 聯繫電話search2.feel = "再繼續尋找"
// 宣告 s2 的 feel 感受
之後再存取屬性:
search2.nameMake // 存取屬性得到 Cessnasearch2.typeNumber // 存取屬性得到 152search2.year // 存取屬性得到 1981search2.postTotalTime // 存取屬性得到 10173search2.location // 存取屬性得到 New Orleans, LA USAsearch2.salePrice // 存取屬性得到 49900search2.company // 存取屬性得到 Ankur Hukmanisearch2.contactNumber // 存取屬性得到 emailsearch2.feel // 存取屬性得到 再繼續尋找search2.detailOfAircraft(usedPrice: 49900, overhaulHours: 10173) // 呼叫方法search2.moneyDifferent(web1Price: 160000, web2Price: 49900) // 呼叫方法