swift入門第三季(列舉,類,物件導向, 協議)

2021-07-23 10:58:28 字數 2685 閱讀 9248

列舉形式:

enum 列舉名
關聯值:

enum plant
class

user

set(newvalue)

}//構造器

init(first:string, last:string)

}let s = user(first: "極客", last: "hello");

print(s.fullname)

s.fullname = "測試-測試2"

print(s.fullname)

屬性觀察器

class

person else

}didset

}}var p = person();

p.age = 220;

兩種類中的方法,例項方法和型別方法

class

someclass

class

func

bar(msg msg:string)

}var sc = someclass()

var f1:()->() = sc.test;//通過物件進行呼叫

var f2:(string)->void = someclass.bar//通過類進行呼叫

f1()

f2("極客")

方法有多個引數的,除第乙個外,其他都要帶引數名呼叫。

如果不想要帶引數名,可以使用_修飾引數名

可變方法,mutating

struct jkrect 

}var rect = jkrect(x: 20, y: 12, width:200, height: 300)

rect.movebyx(x: 100, y: 90)

print("rect矩形的左上角的x座標為:\(rect.x),y座標為:\(rect.y)")

下標,用subscript修飾

struct jkrect 

}set}}

}var rect2 = jkrect(x: 20, y: 12, width:200, height: 300)

print("rect矩形的左上角的x座標為:\(rect2.x),y座標為:\(rect2.y)")

可選鏈

class

customer

}class

company

}class

employee

func info()

}//第一種方式

//var c = customer(name:"damon")

//var emp = employee(name:"elena",title:"student")

= emp;

= company(name:"極客學院",addr:"北京市")

//print("為\(c.name)服務的公司名為\(c.emp!.company.name)")

//第二種方式 (單獨使用第二種會崩潰,因為company沒有值)

var c2 = customer(name: "lucky")

c2.emp = employee(name: "snow", title:"客服")

//print("為\(c2.name)服務的公司名為\(c2.emp!.company.name)") 這樣會崩潰

print("為\(c2.name)服務的公司名為\(c2.emp?.company?.name)")//用可選鏈

static 在列舉,結構體中修飾的屬性和方法

class 在類中修飾的屬性和方法

結構體可以包含例項計算屬性,不能包含例項儲存屬性

類中不能定義型別儲存屬性,只能包含型別計算屬性

構造器中常量屬性可以修改

可能失敗的構造器

let name:string

init?(name:string)

self.name = name

}}let c1 = cat(name:"kitty")

if c1 != nil

let c2 = cat(name: "")

print(c2)

anyobject: 可代表任何類的例項

any:代表任何類

協議:類似於其他語言的介面(多繼承)

protocol strokable

}protocol fullable

}enum color

protocol hasarea : fullable,strokable

}protocol mathable

static

var e:double

}struct rect:hasarea,mathable

var fullcolor: color?

var strokewidth: double = 0.0

var area: double

}static

var pi:double = 3.14159535

static

var e:double = 2.71828

}

Java入門第三季(一 異常與異常處理)

一 異常 有異於常態,和正常情況不一樣,有錯誤出現。阻止當前方法或作用域。throwable 1 error 1 虛擬機器錯誤 virtualmachineerror 2 執行緒死鎖 threaddeath 2 exception 1 非檢查異常 1 空指標異常 nullpointerexcepti...

第三季複習

其實這個複習工作,在每一小節之後複習是最好的,現在搞得真是累,都要從頭看到尾,像是要重新複習一遍,搞得考試拖後很多,真是得不償失啊.所以這個要改變方法,每節之後需要認真複習一遍,把提綱寫下來,之後複習起來就容易很多了.2.列舉與類的靜態成員 首先建立乙個new 乙個enum,建立male和femal...

(第三季)210 事件

事件 事件 event 基於委託,為委託提供了乙個發布 訂閱機制,我們可以說事件是一種具有特殊簽名的委託。什麼是事件?事件 event 是類或物件向其他類或物件通知發生的事情的一種特殊簽名的委託.事件的宣告 public event 委託型別 事件名 通常事件的命名,以名字 event 作為他的名稱...