go 语言中类的封装
文章目录
go中的类的定义和使用
之前一篇博客详细介绍了go语言中如何定义类,使用类,
go语言中如何实现封装?
go是直接支持strut的封装的,go语言的可见性是根据首字母大小写来实现的.
首字母大写表示对外部可见,类似C#中的public,首字母小写,对外部不可见,类似C#中的private.
package main
import (
"fmt"
)
type Student struct {
name string
age int
}
func (s Student) GetName() string {
return s.name
}
func (s Student) GetAge() int {
return s.age
}
func main() {
var s = new(Student)
s.name = "zhangzhi"
s.age = 35
fmt.Printf("student name is %s ,age is %d", s.GetName(), s.age)
}
我们上面代码定义的 Student ,以大写字母开头,而属性全部是私有的,
通过方法来访问私有属性,所以方法是大写字母开头的public 共有的.
但是有点人可能有疑问了,上面封装代码属性是私有的,为啥 main 函数中直接访问 s.age 还能成功呢?
我们所说的"公有" 和 "私有" 是针对外面的包引用当前包的时候,是否有权限访问此包中的资源.
以上就通过定义开头字母大小写字母来实现了类的封装.
出自:go 语言中类的封装