Golang

Go语言面向对象编程说明

11-19 09:38

Golang面向对象说明

1、Golang支持面向对象编程(OOP),但是和传统的面相对象编程有区别,Golang并不是纯粹的面相对象语言,所以“Golang支持面向对象编程特性”是比较准确的说法。

2、Golang没有类(class),Go语言的结构体(struct)和其它编程语言的类(class)有同等的地位,可以理解为Go语言是基于 strcut 来实现OOP特性的

3、Golang面向对象编程非常简洁,去掉了传统OOP语言的继承、方法重构、构造函数和析构函数、隐藏的this指针等等。

4、Golang仍然有面向对象编程的继承、封装和多态的特性,只是实现方式和其它OOP语言不一样,比如继承:Golang没有extends关键字,继承是通过匿名字段来实现。

5、Golang面向对象(OOP)很优雅,OOP本身就是语言类型系统(type system)的一部分,通过接口(interface)关联,耦合性低,也非常灵活,所以也可称作面向接口编程。Golang中面向接口编程是非常重要的特性。


面向对象应用步骤

1、声明(定义结构体),确定结构体名

2、编写结构体的字段

3、编写结构体的方法


面向对象编程 - 抽象

在定义一个结构体的时候,实际上就是把一类事物共有的属性(字段)和行为(方法)提取出来,形成一个物理模型(结构体),这种研究问题的方法称为抽象。


通过代码理解抽象:

比如,定义一个银行卡的结构体,把银行卡通常会有的属性和行为提取出来(抽取一类现象)

银行卡可有的属性:账号、密码、余额

银行卡可有的行为:存钱、取钱、查询余额

type BankCard struct{

AccountNo int

Pwd string

Balance float64

}

//存钱(抽象行为)

func (b *BankCard) Deposite(pwd string, money float64) {

if pwd != b.Pwd {

fmt.Println("密码错误")

return

}

if money <= 0 {

fmt.Println("余额不正确")

return

}

b.Balance = money

}

//取钱(抽象行为)

func (b *BankCard) WithDraw(pwd string, money float64) { ... }

//查余额(抽象行为)

func (b *BankCard) Query(pwd string, money float64) { ... }


微信小程序
大潇博客 版权所有 Copyright ©2016~2026
京ICP备17004217号-6  合作QQ:284710375
天玺科技