开发者学堂课程【Scala 核心编程-基础:封装】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/609/detail/8963
封装
内容简介
一、面向对象编程三大特征
二、封装的介绍
三、版述
一、面向对象编程三大特征
1、基本介绍
面向对象编程有三大特征:封装、继承和多态。
二、封装的介绍
1、封装(encapsulation)的本质
就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。
2、封装的好处
(1)隐藏实现细节
(2)提可以对数据进行验证,保证安全合理
对(2)举例:
比如在银行取款,会加入业务逻辑,如果在代码的设置中没有对函数进行控制,相当于是说,想怎么取款便怎么取款;对于代码中 var 和 val 部分的代码,应该设置成私有的,是不允许用户私自更改的,如果不设置成私有的,被别人更改了密码和被取款的事件都是有可能发生的,封装最大的好处就是对数据进行保证。
(3)同时可以加入业务逻辑
3、如何体现封装
(1)对类中的属性进行封装
(2)通过成员方法,包实现封装
4、封装的实现步骤
(1)将属性进行私有化
(2)提供一个公共的 set 方法,用于对属性判断并赋值
def set Xxx(参数名:类型): Unit ={
//加入数据验证的业务逻辑
属性=参数名
}
(3)提供一个公共的 get 方法,用于获取属性的值
def get Xxx()[:返回类型]={
return 属性
}
5、快速入门案例
(1)那么在 Scala 中如何实现这种类似的控制呢?
请看一个小程序(Test Encap. scala),不能随便查看人的年龄,工资等隐私,并对输入的年龄进行合理的验证[要求1-120之间]。
代码设置:
class Person {
var name: String=
//var age;1//当是public时,可以随意的进行修改,不安全
private var age: Int =_
private var salary: Float =_
private var job: String=_
def set Age (age: Int): Unit={
if(age >=0 && age <= 120)
this. age = age
}else {
print ln("输入的数据不合理");//可考虑给一个默认值
this. age = 20
}
三、板书
接下来对前面所讲的内容进行板书,讲了面向对象编程三大特征,首先是基本介绍,面向对象编程的三大特征有封装、继承和多态;其次对封装进行了介绍;然后说到了封装的好处,这里说到了三点,再讲了如何实现封装,最后讲了封装的实现步骤和快速入门案例,这个案例是关于员工年龄隐私,也加入了一些业务逻辑,体现了封装的特点。