在某些情況下,我們要需要宣告(定義)方法。比如person 結構體:除了有一些欄位外(年齡,姓名...),person結構體還有一些行為比如:可以說話、跑步...,通過學習,還可以做算術題。這時就要用方法才能完成。
golang中的方法是作用在指定的資料型別上的(即:和指定的資料型別繫結),因此自定義型別,都可以有方法,而不僅僅是struct
方法的宣告和呼叫:
type a struct
func (a a) test()
對上面的語法的說明:
1)func (a a) test() {} 表示 a結構體有乙個方法,方法名為test
2)(a a) 體現 test 方法是和 a型別繫結的
舉例說明:
type person struct
//給person型別繫結乙個方法
func (p person) test()
type dog struct ... p 表示那個 person 變數呼叫,這個p 就是它的副本。和函式傳參非常相似。
4)p 這個名字,由程式設計師指定,不是固定的。比如修改成 person 也可以。
type person struct
//給person型別繫結乙個方法
func (p person) test()
func main()
func (p person) speak()
func main()
2)給person結構體新增jisuan 方法,可以計算從 1+..+1000的結果
案例:type person struct
func (p person) jisuan()
fmt.println(p.name, "計算的結果是=", res)
}func main()
3)給person結構體新增jisuan2方法,該方法可以接收乙個數n,計算從1+..+n的結果
案例:type person struct
func (p person) jisuan2(n int)
fmt.println(p.name, "計算的結果是=", res)
}func main()
4)給person結構體新增getsum方法,可以計算兩個數的和,並返回結果。
案例:type person struct
func (p person) getsum(n1 int, n2 int) int
func main()
5)方法的呼叫
p.speak()
p.jisuan()
p.jisuan2(20)
res := p.getsum(10,20)
fmt.println("res=", res)
物件導向之構造方法
構造方法 主要用來給物件的資料進行初始化 構造方法格式 a 構造方法格式 a 方法名與類名相同 b 沒有返回值型別,連void都沒有 c 沒有具體的返回值 案例 十一 package com.it 08 構造方法 給物件的資料進行初始化 格式 方法名和類名相同 沒有返回值型別,連void都不能寫 沒...
Python物件導向之方法
任務 給定一段 請修改其中部分 使 可以成功執行。請在下面的begin end之間按照注釋中給出的提示編寫正確的 begin class kls def init self,data self.data data staticmethod defcheckind return ind on defd...
物件導向 1
物件名列印 類名 位址值 1 從磁碟讀取class檔案,載入進方法區的class檔案區 2 將class檔案靜態的屬性和行為的載入進靜態區 3 將class檔案中私有的行為載入進方法區 4 在堆中持有方法的引用 5 讀取class檔案中的成員字段,並初始化 6 在堆中持有方法的引用 7 將這個位址賦...