swift學習筆記 4 結構體和類

2021-07-05 19:23:35 字數 1900 閱讀 2579

//類和結構體

//相同點

//1.類和結構體都可以定義屬性和方法(這是和c oc中的結構體的最大區別)

//2.類和結構體中都能定義構造器方法

//不同點

//1.類可以在析構體deinit中釋放資源,結構體不可以

//2.類可以繼承.結構體是不能被繼承

//3.類是乙個引用型別,乙個例項可以有多個引用,操作的是例項的本身;結構體是值型別,將內容拷貝到新的記憶體中,操作的是一塊新的記憶體

1.結構體

//結構體

struct length

func calculatelength() -> double

}var len = length(stat: 30, end: 100)

len.calculatelength()

2.類

//類

class car

//析構器 , 當類的例項釋放的時候可以釋放資源

deinit

}

3.值型別(結構體)與引用型別(類)

var car = car(name:"byd")

car.len = length(stat:20 , end:700)

car.len

.stat

//值型別,操作的是拷貝的內容

var leng = car.len

leng.stat = 100

car.len

.stat

car.carname

//引用型別,操作的例項本身

var car1 = car

car1.carname = "aotuo"

car.carname

4.屬性

(1).儲存屬性,將常量或者變數作為例項的一部分使用

struct point

struct size

(2).計算屬性,提供乙個get方法來獲取值,也可以提供乙個可選的set方法來設定值

struct rect 

set(newcenter)

}}var rect = rect()

rect.oraigon

.x = 10

rect.oraigon

.y = 10

rect.size

.width = 100

rect.size

.height = 100

rect.center

.xrect.center

.yrect.center = point(x: 100, y: 100)

rect.oraigon

.x

(3).型別屬性

class stu

var name : string

!var

type : string

! init(name : string , type : string)

func printname() ->

string

//類的型別和方法,用class關鍵字宣告

class func printage() -> int

}stu.printage()

var stu = stu(name: "hanlei", type: "213")

stu.printname()

stu.age

5.類的繼承

class st : stu

override init(name: string, type: string)

}

Swift學習筆記 七 類和結構體

類和結構體的比較 1 相同點 定義屬性用於儲存值 定義方法用於提供功能 定義下標用於通過下標語法訪問值 定義構造器用於生成初始化值 通過擴充套件以增加預設實現的功能 符合協議以對某類提供標準功能 2 與結構體相比,類還有如下的附加功能 繼承允許乙個類繼承另乙個類的特徵 型別轉換允許在執行時檢查和解釋...

Swift學習筆記系列 (8)類和結構體

tags swift 學習筆記 為什麼把類和結構體一起講?因為除了類的複雜應用部分,二者很相似。定義屬性來儲存資料 定義方法來實現功能 定義下標提供訪問值 定義構造方法設定初始值 預設實現之外,可以擴充套件功能 遵循協議 protocol 來提提供標準功能 乙個類繼承另乙個類的特徵 類例項可以在執行...

Swift學習 類和結構體補充

類的構造器 class zs init name string 析構 與之前寫oc中的dealloc功能一樣 deinit 預設構造器 var zs zs 呼叫了重寫的構造方法 var zs1 zs name 帥不 zs1.name 定義結構體 struct length 呼叫了預設的構造器 ini...