基本介绍
Golang仍然有面向对象编程的继承、封装、多态三大特性,只是实现方式和其它OOP语言不一样
面向对象编程思想——抽象,实际上就是把一类事物的共有属性(字段)和行为(方法)提取出来,形成一个物理模型(模板),这种研究问题的方法成为抽象。
多态是通过接口来体现的
面向对象编程思想——抽象
代码
package main
import "fmt"
// 定义一个 Account 结构体
type Account struct {
AccountNo string
Pwd string
Balance float64
}
// 绑定方法
// 1. 存款
func (account *Account) Deposite(money float64, pwd string) {
// 判断输入的密码是否正确
if pwd != account.Pwd {
fmt.Println("您输入的密码不正确")
return
}
// 校验金额
if money < 0 {
fmt.Println("金额不正确")
return
}
account.Balance += money
fmt.Printf("存款成功,交易后余额: %v \n", account.Balance)
}
// 2.取款
func (account *Account) WithDraw(money float64, pwd string) {
// 判断输入的密码是否正确
if pwd != account.Pwd {
fmt.Println("您输入的密码不正确")
return
}
// 校验金额
if money < 0 || money > account.Balance {
fmt.Println("金额不正确")
return
}
account.Balance -= money
fmt.Printf("取款成功,交易后余额: %v \n", account.Balance)
}
// 2.查询余额
func (account *Account) Query(pwd string) {
// 判断输入的密码是否正确
if pwd != account.Pwd {
fmt.Println("您输入的密码不正确")
return
}
fmt.Printf("你的账号:%v, 余额: %v \n", account.AccountNo, account.Balance)
}
func main() {
account := Account{
AccountNo: "gs123456",
Pwd: "666666",
Balance: 100.0,
}
// 查询余额
account.Query("666666")
// 存款
account.Deposite(100.2, "666666")
// 取款
account.WithDraw(50, "666666")
}