一个程序就是一个世界,有很多的对象(变量) |
Golang 语言“面向对象编程”的说明:
- Golang也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言.所以我们说Golang支持面向对象编程特性是比较准确的
- Golang中没有类(class),Go语言的结构体(struct)和其他编程语言的类(class)有同等地位,你可以理解Golang是基于struct来实现OOP特性的
- Golang面向对象编程非常简洁,去掉了传统OOP语言的继承、方法重载、构造函数和析构函数、隐藏的this指针等等
- Golang仍然有面向对象编程的继承,封装和多态的特性,只是实现的方式和其他OOP语言不一样,比如继承:Golang没有extends关键字,继承是通过匿名字段来实现
- Golang面向对象很优雅,OOP本身就是语言类型系统(type system)的一部分,通过接口(interface)关联,耦合性低,也非常灵活.同时Golang中面接口编程是非常重要的特性
结构体
定义一个最简单的结构体Cat
package main
import "fmt"
type Cat struct {
Name string
Age int
Color string
}
func main() {
// 创建一个Cat 变量
var cat1 Cat
fmt.Println("cat1:", cat1)
}
-----------运行结果:-------------------------------------------------------------------
cat1: { 0 }
Process finished with exit code 0
释:
- 此时并没有附值 默认为空
- Name 默认为 “ ” 空字符串
- Age 默认为 0
- Color 默认为“ ” 空字符串
让我们对这个 Cat“类” 进行附值
func main() {
// 创建一个Cat 变量
var cat1 Cat
cat1.Name = "大橘"
cat1.Age = 3
cat1.Color = "橘色"
fmt.Println("cat1:", cat1)
fmt.Println("猫猫的信息如下:")
fmt.Println("Name:", cat1.Name)
fmt.Println("Age:", cat1.Age)
fmt.Println("Color:", cat1.Color)
}
-----------运行结果 ------------------------------------------------------------------
cat1: {大橘 3 橘色}
猫猫的信息如下:
Name: 大橘
Age: 3
Color: 橘色
Process finished with exit code 0
总结
通过上面的案例和讲解我们可以看出:
- 结构体是自定义的数据类型,代表一类事物
- 结构体变量(实例)是具体的,实际的,代表一个具体变量
如果本文对您有帮助,记得点个赞哦~~~ |