我们在前面去定义一个结构体时候,实际上就是把一类事物的共有的属性(字段)和行为(方法)提取出来,形成一个物理模型(模板),这种研究问题的方法称为抽象。
当你将一类事物的属性和行为抽取出来之后,下一步就是将代码体现出来。下面就是模拟银行卡存款取款查询余额方式。
package main
import "fmt"
type Account struct {
AccountNum string
Password string
Balance float64
}
func (account *Account) Cunqian(money float64, password string) {
if account.Password != password {
fmt.Println("用户名密码错误!")
return
}
if money < 0 {
fmt.Println("输入的金额不正确!")
return
}
account.Balance += money
fmt.Println("存款成功!")
}
func (account *Account) Quqian(money float64, password string) {
if account.Password != password {
fmt.Println("用户名密码错误!")
return
}
if money < 0 || money > account.Balance {
fmt.Println("输入的金额不正确!")
return
}
account.Balance -= money
fmt.Println("取款成功!")
}
func (account *Account) Chaxunyuer(password string) {
if account.Password != password {
fmt.Println("用户名密码错误!")
return
}
fmt.Println("当前余额:", account.Balance)
}
func main() {
a := &Account{
AccountNum: "123456",
Password: "123456",
Balance: 0,
}
a.Cunqian(12.3, "123456")
a.Chaxunyuer("123456")
a.Quqian(10.2, "123456")
a.Chaxunyuer("123456")
}
存款成功!
当前余额: 12.3
取款成功!
当前余额: 2.1000000000000014
标签:account,password,struct,money,fmt,抽象,面向对象编程,Println,123456
From: https://blog.51cto.com/u_14035463/7689609