封装|学习笔记

简介: 快速学习封装。

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

}

 

三、板书

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

相关文章
|
存储 Cloud Native 安全
C++ 封装成库
C++ 封装成库
|
Java 数据挖掘 数据库
封装的理解
封装的理解
104 0
|
2月前
|
数据安全/隐私保护 C语言 C++
C++(七)封装
本文档详细介绍了C++封装的概念及其应用。封装通过权限控制对外提供接口并隐藏内部数据,增强代码的安全性和可维护性。文档首先解释了`class`中的权限修饰符(`public`、`private`、`protected`)的作用,并通过示例展示了如何使用封装实现栈结构。接着介绍了构造器和析构器的使用方法,包括初始化列表的引入以及它们在内存管理和对象生命周期中的重要性。最后,通过分文件编程的方式展示了如何将类定义和实现分离,提高代码的模块化和复用性。
|
6月前
|
安全 数据安全/隐私保护
什么是封装?
什么是封装?
37 0
|
测试技术 C++
c++学习之mystring的简单封装
c++学习之mystring的简单封装
126 0
|
程序员
封装(了解一下)
封装(了解一下)
92 0
|
存储 PHP 开发者
|
缓存
DiskCacheDir 的封装
DiskCacheDir 的封装