面向对象-1-构造函数与方法
一 面向对象初识
1.1 模拟构造函数
Go和传统的面向对象语言如Java有着很大区别。结构体没有构造函数初始化功能,可以通过以下方式模拟:
package main
import (
"fmt"
)
type Person struct {
Name string
Age int
}
func NewPersonByName(name string) *Person {
return &Person{
Name: name,
}
}
func NewPersonByAge(age int) *Person {
return &Person{
Age: age,
}
}
func main() {
p := NewPersonByName("zs")
fmt.Println(p) // {zs 0}
}
贴士:因为Go没有函数重载,为了避免函数名字冲突,使用了NewPersonByName
和NewPersonByAge
两个不同的函数表示不同的Person
构造过程。