Golang struct 结构体 面向对象编程思想-抽象 理解抽象

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

Golang struct 结构体 面向对象编程思想-抽象 理解抽象_第1张图片

当你将一类事物的属性和行为抽取出来之后,下一步就是将代码体现出来。下面就是模拟银行卡存款取款查询余额方式。

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

你可能感兴趣的:(Go,面向对象编程结构体,struct,golang)