Golang面向对象基础:方法与结构体
需积分: 50 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的类型系统包括布尔、字符串以及各种整数、浮点数和复数类型,还有数组、切片、映射等复杂数据结构。
182 浏览量
335 浏览量
2019-09-20 上传
118 浏览量
157 浏览量
128 浏览量
468 浏览量
368 浏览量
291 浏览量

辰可爱啊
- 粉丝: 22

最新资源
- VC6实现简易Ini文件读写接口
- proxool连接池配置支持Access数据库及字符集设置
- VidlyAPI: 探索虚构视频租赁后端的构建过程
- log4c-2.0.1版本发布:新增Cache模块支持日志级别重置
- Matlab英文字母识别与图像二值化处理教程
- 蜘蛛到访查看器:SEO与网站优化的记录利器
- 自定义网页皮肤,点击即换,简单快捷
- 深入学习wpa_supplicant配置与应用
- 项目介绍:探索my-project的核心价值与应用
- 智能排课软件SimpleVC:个性化操作与强大规则系统
- 深入解析Yahoo等大型网站的多层架构技术
- 实现WPF下3D图片的触摸滑动及苹果浏览器风格效果
- FlatStyle D7/D6/D2007: 一键添加目录安装教程
- Configuration Wizard 2.51:快速配置工具的使用介绍
- CentOS7下aria2-1.19.3的安装指南与资源
- C++个人考勤系统开发实例代码分享