封装|学习笔记

简介: 快速学习封装。

开发者学堂课程【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

}

 

三、板书

接下来对前面所讲的内容进行板书,讲了面向对象编程三大特征,首先是基本介绍,面向对象编程的三大特征有封装、继承和多态;其次对封装进行了介绍;然后说到了封装的好处,这里说到了三点,再讲了如何实现封装,最后讲了封装的实现步骤和快速入门案例,这个案例是关于员工年龄隐私,也加入了一些业务逻辑,体现了封装的特点。

相关文章
|
JavaScript API
接口封装如何实现?
接口封装如何实现?
|
Unix Linux 测试技术
C++封装详解——从原理到实践
C++封装详解——从原理到实践
767 0
|
JavaScript
js选项卡功能制作
js选项卡功能制作
|
JavaScript
js实现登录注册功能
js实现登录注册功能
|
4天前
|
数据采集 人工智能 安全
|
14天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1139 152
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1802 9