05-面向对象

面向对象

  • 1. go语言面向对象特点
  • 2. 结构的定义
  • 3. 为结构定义方法
  • 4. 值接收者VS指针接收者
  • 5. 封装
  • 6. 包
  • 7. GOPATH环境变量

1. go语言面向对象特点

  • go语言仅支持封装,不支持继承和多态
  • go语言没有class,只有struct

2. 结构的定义

05-面向对象_第1张图片
05-面向对象_第2张图片

  • 不论地址还是结构本身,一律使用"."来访问成员
  • 使用自定义工厂函数创建结构
  • 注意返回了局部变量的地址
    05-面向对象_第3张图片

3. 为结构定义方法

  • 显示定义和命名方法接收
    05-面向对象_第4张图片
  • 使用指针作为方法接收者,只有使用指针才可以改变结构内容
    05-面向对象_第5张图片
  • nil指针也可以调用方法

4. 值接收者VS指针接收者

  • 要改变内容必须使用指针接收者
  • 结构过大也考虑使用指针接收者
  • 一致性:如有指针接收者,最好都是指针接收者
  • 值接收者是go语言特有
  • 值/指针接收者均可接收值/指针

5. 封装

  • 名字一般使用CamelCase
  • 首字母大写:public
  • 首字母小写:private

6. 包

  • 每个目录一个包,一个目录只能有一个包,包名不一定要和目录名一样
  • main包包含可执行入口
  • 为结构定义的方法必须放在同一个包内,可以是不同文件

7. GOPATH环境变量

05-面向对象_第6张图片

  • GOPATH下目录结构05-面向对象_第7张图片
    05-面向对象_第8张图片

你可能感兴趣的:(Go)