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

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

快速示意圖

給個示意圖比較一下….

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 的變數,類別為 AircraftList
search1.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 的變數,類別為 AircraftList
search2.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)                // 呼叫方法

--

--

weiWeiCFI
彼得潘的 Swift iOS / Flutter App 開發教室

Keep simple being activity life and move on! 階段性人生,新的領域更要比他人更加把勁,讓自己又開始呼吸;You never try you never know!