跳到主要内容

go 语言中类的封装

· 阅读需 2 分钟
一介布衣
全栈开发者 / 技术写作者

  • 文章目录

    • go中的类的定义和使用
    • 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 还能成功呢?
我们所说的"公有" 和 "私有" 是针对外面的包引用当前包的时候,是否有权限访问此包中的资源.

以上就通过定义开头字母大小写字母来实现了类的封装.