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 语言中类的封装

回到顶部