抽象的介绍
-
之前为了定义一个结构体时,实际上就是把一类事物的共有的属性(字段)和行为(方法)提取出来,形成一个物理模型(结构体)。这种研究问题的方法就叫做抽象
-
比如你有很多银行的账户,每个账户都有账户号码、余额、开户行等属性,还有存款、取款、转账等行为。你把这些共有的属性和行为提取出来,定义一个“账户”结构体,这就是抽象的过程。
- 如果用代码进行实现
package main
import "fmt"
type Account struct {
AccountNumber string
Balance float64
Bank string
}
// 存钱
func (a *Account) Deposit(amount float64) {
a.Balance += amount
}
// 取钱
func (a *Account) Withdraw(amount float64) {
if amount <= a.Balance {
a.Balance -= amount
} else {
fmt.Println("Insufficient funds")
}
}
// 查询余额
func (accout *Accout) QueryBalance() float64 {
return accout.Balance
}
func main () {
a := Account{
AccountNumber: "123456789",
Balance: 1000.0,
Bank: "Bank A",
}
a.Deposit(500.0)
fmt.Println("Balance after deposit:", a.QueryBalance()) // Balance after deposit: 1500
a.Withdraw(200.0)
fmt.Println("Balance after withdrawal:", a.QueryBalance()) // Balance after withdrawal: 1300
}