使用抽象完成银行案例|学习笔记

简介: 快速学习使用抽象完成银行案例。

开发者学堂课程【Scala 核心编程-基础:使用抽象完成银行案例】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8964


使用抽象完成银行案例

 

内容介绍:

一、引入

二、面向对象的三大特性

三、面向对象编程方法-抽象

四、总结

 

一、引入

由于此前对于 java 进行过学习,故而本课程进对于 scala 与 java 的不同点进行详细叙述,相同点将一笔带过

 

二、面向对象的三大特性

1、封装

2、继承

3、多态

 

三、面向对象编程方法-抽象

1、抽象的理解

在定义一个类时,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板)。此种研究问题的方法称为抽象。

2、经典案例

进行银行账号的填写:

image.png

(1)、分析属性、方法

分析出不论银行,各个账号共有的属性、方法。+

1、属性

每个银行账号都应存在账号信息、余额信息、密码

2、方法

查询方法、存取款方法

以上即为抽象过程

3、实际操作

//根据分析,使用 scala 编写 Account 类

class Account (inAccount:stringh ,inBalance:Double,inPwd:string) {

/*

属性

账号,余额,密码  //账号不进行修改

方法:

查询

取款

存款

*/

//进行构造函数的编写

//放入相应值进行初始化

val account = inAccount

val balance = inBalance //double 类型

//密码一般为字符串

val pwd = inPwd

//在银行开卡过程中,账号的余额账号密码需要指定,故应编写一个主构造器

//进行查询方法的书写

//查询方法需公开、提供查询的密码。排除跨行查询意外,由于查询时即使用卡本身进行调用,故可不进行卡号的查询

def query(pwd:string): Unit = {

//进行密码若与传输值不正确的相关编写

if(!this.pwd.equals(pwd)) {

printfln(“密码错误”)

return

}

//进行格式化

printf(“账号为%s 当前余额为=%.2f\n”,this.accountNo,this.balance)  //为输入美观进行格式化

}

//取款

det withDraw(pwd:string,money:Double):Any = {

//进行密码是否正确的判断

if(!this.pwd.equals(pwd)) {

printfln(“密码错误”)

return  //当前若编写 return,由于其本身不带有值,将会出现问题,故而编写 Any 类型

//return 包含返回值、终止程序执行的作用,将其拿掉后程序将会在错误的基础上继续执行,故而不应去掉。但若不去掉,此后的值将出现不匹配的情况,进一步推断出应采用 Any 类型。

//此处体现出语法的灵活使用

}

//判断取款金额是否合理(主要不能超过金额限制)

if(this.balance < money) {

println(“余额不足”)

return

}

//符合条件后进行取款

this.balance -= money

//返回 money

money

}

}

//进行执行

//开卡,即创建一个账号

val account = new Account(gh0001,890.4,“111111”)

//查询

account.query(“111111”)//进行密码的传输

//取款

account.withDraw(“111111”,100.0)//取款时应输入正确的密码

//进行查询

account.query(“111111”)

}

}

//进行代码的运行

D:\program\jdk8\bin\java...

账号为ph00001 当前余额是890.40

账号为ph00001 当前余额是790.40

Process finished with exit code 0

 

四、总结

使用抽象的此过程与 java 具有共通点,仅是形式上放生了部分变化。

相关文章
|
1月前
|
存储 人工智能 BI
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
|
3月前
|
安全
什么是外汇交易所系统开发步骤详细丨案例设计丨需求逻辑丨源码项目
The foreign exchange system is one of the key systems in the financial field, providing investors with foreign exchange trading services. When developing a foreign exchange exchange system
|
4月前
|
设计模式 存储 安全
NFT佛萨奇矩阵公排合约系统开发|案例分析|设计模式
区块链目前面临的另一个挑战是可扩展性问题
|
10月前
|
缓存 搜索推荐 前端开发
项目实战典型案例21——面向对象复用、面向对象实现、立体化权限落地
项目实战典型案例21——面向对象复用、面向对象实现、立体化权限落地
60 0
|
5月前
|
安全 区块链 UED
DAPP去中心化公排互助系统开发|详情逻辑|案例分析
智能合约是一种基于区块链技术的自动化执行合约的工具
|
6月前
|
存储 NoSQL MongoDB
变形记---抽象接口,屎山烂代码如何改造成优质漂亮的代码
在游戏服务器开发过程中,我们经常会在动手码代码之前好好的设计一番,如何设计类,如何设计接口,如何调用,有没有什么隐患,在这些问题考虑评审可以Cover现阶段的需求的情况下再动手。不过,对于一些初级,甚至中高级开发者,仍然不可避免的进入了一个死胡同,缺少设计,屎山代码堆积,越堆越臭,越写越烂,直到很难维护必须要重新改造。最近我给M部门面试服务器主程序开发的职位,我不问开发语言的语法,我只问他们的架构设计经验,我发现相当一部分5-12年“本应该有足够开发经验。
|
7月前
|
安全 区块链
阐述永续合约交易所系统开发方案逻辑及案例项目丨源码程序
阐述永续合约交易所系统开发方案逻辑及案例项目丨源码程序
|
7月前
|
AndFix vr&ar 图形学
潮玩元宇宙/大逃杀游戏系统开发详细案例丨规则流程丨方案逻辑丨功能设计丨需求项目丨源码出售
The development of Chaoyu Metaverse Escape Game System refers to the creation and construction of a virtual reality game system to provide an immersive gaming experience, allowing players to participate in a virtual world for escape and combat.
|
8月前
|
区块链 安全
区块链交易所系统开发详细指南丨交易所系统开发功能逻辑/方案介绍/案例设计/逻辑项目/源码出售
User experience: The interface and user experience of blockchain exchanges should be intuitive, user-friendly, and easy to use and navigate. The platform should provide a simple and clear trading interface to facilitate users' buying and selling operations.
|
9月前
|
安全 区块链
数字货币交易所系统开发(开发逻辑)丨案例详情丨规则玩法丨设计方案丨需求实现丨源码功能
The development process of a digital currency exchange system is an important step, which includes stages such as requirement analysis, system design, coding implementation, testing, and online deployment. In the requirements analysis stage, the development team needs to fully communicate with the