开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:面向对象编程思想-抽象】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9687
面向对象编程思想-抽象
内容简介:
一、面向对象编程三大特性
二、面向对象编程思想-抽象
一、 面向对象编程三大特性
基本介绍: Golang 仍然有面向对象编程的继承、封装和多态的特性,只是实现的方式和其他 OOP 语言不一样。按理说应当先讲面向对象编程的三大特性,但是在此之前,需要先介绍抽象的概念,由于抽象是贯穿在面向对象编程中的。
二、面向对象编程思想-抽象
1. 如何理解抽象
前面去定义一个结构体的时候,实际上就是把一类事物的共有的属性(字段)和行为(方法)提取出来,形成一个物理模型(结构体)。这种研究问题的方法称为抽象。抽象准确的来说是一种研究问题的方法,或者是一种编程的思维方式,抽象始终是贯穿在面向对象编程中。
2. 例子
其中,在属性/字段中:1、账号:如果没有账号那么这个银行卡是不存在的;2、密码:若没有设置银行密码,是空的,那空密码就是密码;3、余额:若银行卡内没有余额,余额为0,那么0就是余额,若欠着10000元,那么-10000就是余额。在行为/方法中:2、取款:虽然有些银行卡只能存款不能取款,只是因为该取款的人不是你,应由相关银行或者机构去取款,任何一个银行卡都有取款功能。
3. 代码实现
首先建一个文件夹,将文件名称称为 chapter11 ,在里面新建一个文件夹叫 abstract (是抽象的意思),新建一个文件叫 main.go ,在 main.go 中先把共同的代码部分复制过来,写一份主函数 main ,写完后根据抽象的思想一步一步完成代码实现,如下所示:
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.Println(“存款成功~~”)
}
//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.Println(“取款成功~~”)
}
//3.查询余额
func (account *Account) Query(pwd string) {
//看下输入的密码是否正确
if pwd != account.Pwd {
fmt.Println(“你输入的密码不正确”)
return
}
fmt.Println(“你的账号为=%v 余额=%v \n”,account.AccountNo,account.Balance)
}
Func main(){
//测试一把
account := Account{
AccountNo : ”gs1111111”,
Pwd : “666666”,
Balance : 100.0,
}
account.Query(“666666”)
}
for {
//这里可以做的更加灵活,就是让用户通过控制台来输入命令...
//菜单...
account.Query(“666666”)
account.Deposite(200.0,”666666”)
account.Query(“666666”)
account.WithDraw(150.0,”666666”)
account.Query(“666666”)
}
下面为测试结果
D:\goproject\src\go_code\chapter11\abstract>go run main.go
你的账号为=gs1111111 余额=100
D:\goproject\src\go_code\chapter11\abstract>go run main.go
你的账号为=gs1111111 余额=100
存款成功~~
你的账号为=gs1111111 余额=300
取款成功~~
你的账号为=gs1111111 余额=150
注意:对上面代码的要求
①自己独立完成
②增加一个控制台的菜单,可以让用户动态的输入命令和选项