Golang面向对象基础:方法与结构体

需积分: 50 67 下载量 119 浏览量 更新于2024-08-19 收藏 850KB PPT 举报
"面向对象-golang基础" Golang是一种由Google开发的编程语言,旨在结合C语言的简洁性和现代编程语言的特性。它不是传统的面向对象语言,但通过接口实现了多态性,支持函数式编程、过程式编程以及面向对象编程的元素。在Golang中,函数的另一种形态是带有接收者的函数,这被称为method。 1. 方法(Method)定义:方法是绑定到特定类型的函数,可以通过类型实例来调用。例如,`Rectangle`和`Circle`结构体都有一个名为`area`的方法,分别计算矩形和圆的面积。 ```go type Rectangle struct { width, height float64 } func (r Rectangle) area() float64 { return r.width * r.height } type Circle struct { radius float64 } func (c Circle) area() float64 { return c.radius * c.radius * math.Pi } ``` 2. 方法继承:当一个结构体包含另一个结构体作为匿名字段时,可以继承其方法。在示例中,`Employee`结构体包含`Human`结构体,因此可以调用`Human`结构体定义的方法。 ```go type Human struct { name string age int } type Employee struct { Human // 匿名字段 company string } ``` 3. 方法重写:如果子类型(如`Employee`)定义了与父类型(如`Human`)相同的方法,那么子类型的方法会覆盖父类型的方法。在示例中,`Employee`结构体重写了`Human`的`SayHi`方法。 ```go // Human 定义method func (h Human) SayHi() { } // Employee 的method重写Human的method func (e Employee) SayHi() { } ``` 4. 不支持方法重载:Golang不支持同名方法具有不同参数列表的重载现象,所以每个方法名必须是唯一的。 Golang的基本语法包括数据类型、变量定义、控制结构(如if、for、switch)、函数、结构体、面向对象(如方法和接口)、并发(goroutine和channel)、接口、导入和包管理、主函数(main)、初始化函数(init)以及测试(test)。Golang还具有类型安全和内存安全特性,使用指针但限制其操作,以防止内存错误。它有内置的内存垃圾回收机制,支持跨平台编译,并且专为网络通信、并发控制和分布式计算设计。Golang的类型系统包括布尔、字符串以及各种整数、浮点数和复数类型,还有数组、切片、映射等复杂数据结构。
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部