00:00
同学们大家好,那么将在本小节开始,我们将为大家讲解一下面向对象三大特征啊的详细内容,首先呢,打开我们的排面向对象三大特征啊面向对象。三大特征啊,当然我们现在讲的是第一个叫做封装啊,叫做封装特征,好了点击OK,首先呢,在这里边我们先给大家整体的介绍一下这三大特征有什么东西好不好,面向对象的三大特征,这个只要是学计算机的,是不是有面向对象有关的都会知道,叫做封装继承。多态。与。多肽啊,就这么。三个东西,那这里边三个东西我们会在剩下的几个章节当中为大家逐个进行讲解,我们本小节主要为大家讲解的是封装特性啊,封装特性啊,封装特征吧,封装特征,那为什么要用封装特征呢?我们从现实的角度上来想一想好不好,那假如说我现在是一个人对不对,是一个从好的对象,或者是一个人的对象,那么我这个人呢,当然有很多很多的什么呀,特征和一些功能,比如说。
01:22
我的肤色呀,是不是,我的心高体肺肾呐,是不是我的这个什么?呃,身高体重啊,性别呀,是不是,以及我的这个各种各样的功能,什么走路呀,吃饭呐,睡觉呀,打呼噜啊,是不是?那这些功能大家想一想啊,如果任何人都能够随意访问这一些方法和什么呀,和这个属属性的话,会不会遇点问题,比如说有人随便就能看看我的心,看看我的肝,看看我的脾,看看我的肾,这哪行啊是不是?那随便看我还不就拉倒了,是不是?再一个你能随便改一些我的属性吗?我的性别是男啊,你想改就改成女的了,是不是也不合理啊,包括我的一些功能是不是?比如说我的什么呀,我的这个上厕所的功能,那你就不能随便登我,你让我去我就去吗?不一定是不是,所以呢,在这里边我们会发现一个真实的什么呀,对象的成员属性或者成员方法是不一定能够随便被人调用的。但是我们知。
02:22
之前学过的所有操作是随便玩,是不是任何人都可以调用属性和方法,但是现在啊,在实际工作中。工作中啊,实际工作中啊,工作中很多的成员啊,是不方便啊,很多成员不方便被对象之外的什么呀的这个访问或者是操作的。或者操作的啊,与此同时我们就需要限定一下是不是,所以所以需要限定一下啊,是否可以访问成员,是否可以操作成员不是你想做就能做的,就比如说我的心吧,我的心你是不能看的,你也不能改,对不对,但是谁可以用,只有我自己可以用,对不对啊,那只这东西就属于什么呀,我们把它封在了一个我的身体里边,除了我任何人都不允许来使用,是不是?这种情况其实就是一种保护性的策略,而这种保护性的策略我们就称之为封装特性,所以什么叫封装特性啊,封装特性特性啊就是对于成员啊,成员操作进行限制啊,操作进行限制的堡性措施啊,这么个东西而已啊,所以我们有些时候是不想让别人看。
03:50
面对不对,那在讲我们的封装操作之前呢,给大家给封装先分一个类啊,正常情况下,面向对象的封装也分为三个级别啊,面向对象的封装它分为三个级别,三个级别啊,哪三个级别呢?分别叫做私有化封装啊,或者叫做私有化。
04:14
私有化封装,然后呢,叫受保护的封装啊,受保护的封装。以及我们的叫做公共的封装啊,公共的或者叫公开的封装都行啊,封装这么三个级别,这三个级别所代表的什么呀,权限也是不一样的啊,你就比如说私有化好像就是某个人的对不对,别人不能用公共的就好像谁都能用是不是?哎,确实是这个道理啊,那我们下面就得逐个为大家讲解一下我们封装的一些语法以及它的特征行不行?首先呢,先给大家提醒啊,受保的封装我们暂时不讲啊,暂时不讲。会在什么呢?继承的章节为大家讲解,继承章节讲解,因为在这里边儿需要用到继承章节里边的信息好不好。
05:04
OK,来,我们在里边看一下啊,那么先为大家讲解的是我们的私有化封装。私有化封装,当然大家迫不及待的想写代码对不对?我们在这里边用来写一个人的操作行不行?或者要写一个人的类啊,那就是我们的什么的hum human,不过我们之前好像写过human对不对,所以这一次咱human。啊,下划线啊,零一行不行。所以,呃,干脆这样吧,秀眉下线PR。呃,写上私有化单词了行不行,PPVT啊好,这就说明这是人类的私有化封装的一个操作啊好,创建文件首先呢,这里边还需要声明一个人类啊,声明一个人类。声明一个写明不对啊。声明一个人类现在这个最大家能说明什么难度是不是class好hum人类,然后这里边写上成员属性和成员方法成员属性然后呢,再加上一个成员方法属性这块我们就给他定一些行不行,比如说定一些什么名字啊,名字等于什么张三李四王老五是不是,然后呢,Six咱也给他定义一个性别,咱写一个男啊张三叫女的怪怪的是不是,然后呢,这个年龄啊,咱等于18岁行不行,然后再写上一些什么呀,它的一些其他的一些特征,比如说他有心肝脾肺肾是不是here啊,Heart心脏等于叫做健康的心脏,心脏。
06:41
然后呢,再来一个,比如说再来一个肾脏吧,行不行,这个肾脏我也不太会写啊,然后我们百度一下肾脏的英文单词好不好。好,这个大家饶一下我啊,肾脏啊,因为我这个。确实英文不咋地,肾脏啊,嗯,肾脏干嘛脏啊,肾脏英文啊。
07:03
还叫哎呦KD什么玩意儿?Kid dy好,我们有了kid dy k dy好,我们再来写一个强大的肾脏行不行?选上强大的肾脏。肾脏好,然后呢,我们再加一些功能行不行,比如说我们加一个这个叫做呃,唱歌的功能吧。唱歌的功能。唱歌的功能EF,咱叫它sing行不行,然后呢,在这里边写上print,套上括号。加,呃,都。叫做do remi FA sola SI do啊,这我也不知道怎么写啊。好,然后呢,再来一个行不行,再来一个什么呢?这个吃饭的方法,吃饭的方法,那咱们把DEF啊,我们eat考上括号啊,吃print套上括号,然后我们写上是不是我们。叫我最喜欢吃西红柿炒番茄了。
08:05
好,然后再来干什么事呢?再来一个,这个叫做呃,跑步的方法行不行?跑步啊,跑步应该叫run吧,是不是DEF套上括号啊,我们写上PRINT121121是不是,121121是不是。好,锻炼身体,锻炼身体好了,那在这个时候呢,我为大家写了几个成员属性,几个成员方法啊,然后干什么事呢?好,我们在这里边给他实例画出一个对象行不行?实例画对象也就做一个人出来呗,咱这个人不叫张三吗?ZS等于hum mn。括上括号,这个时候呢,我们就可以得到一个张三的对象啊,或者叫一个人类的对象。用先运行一遍程序啊,确实得到human类的一个对象。对不对?好,有了这个对象之后呢,我们来干什么事?来看好了,我们来访问对象成员和方法。
09:03
访问对象的成员和方法啊,成员属性和方法,成员属性和方法首先呢啊,按照我们之前学过的知识啊,你随便访问呗,是不是,比如说我想访问它的性别,那你在这里边直接张3.six,我们就可以打印出它的性别来。是不是难出来了,所以这里边第一个叫做访问性别。访问性别行不行,然后呢,我把它放到注释放到上面啊,然后呢,再访问什么呢?再访问一下它的肾脏行不行,访问肾脏。然后呢,在这里边啊,Print套上括号,我们写上ZS,它的肾脏叫什么来着什么这个忘了啊。叫KT啊KT好有没有问题呢,也没有问题。看到没有强大的肾脏是不是,然后呢,在这里边我们再访问一些方法行不行,或者叫调用一些方法,调用方法。
10:02
方法。要用方法。调用方法好,没有问题,然后我们在调用方法的时候,我们调用什么呢?我们调用一下这个唱歌方法,什么能不调用啊,这个大家应该知道,Z比sing sing套上框,程序运行的时候你会发现可以调用吧,因为我们之前都操作过,对不对,然后呢,再调用一个,这是唱歌啊,再来一个跑步吧,唱。歌方法,我们再来一个调用一个跑步方法啊,调用跑步方法好。方法,然后在里边Zs.ru。大家一看都没有问题,是不是都没有问题,所有的属性和方法都可以访问,在这里边就出现了一些逻辑性问题,什么逻辑性问题呢?好,大家来看啊,对于属性而言,你要说哎,你要用我的名字没有问题,因为我们的名字天天被别人用,是不是,天天叫你是不是,比如说叫你张三是不是,然后呢,叫你老张是不是,是给你起个外号什么的,那我们的名字被别人访问应该是没有问题的,所以正常情况下,像名字这个东西应该是什么,允许别人使用是不是?
11:15
允许啊,叫允许别人使用没有问题的,因为谁不叫你名字是不是,然后呢,大家注意啊,性别这个东西就不太一样了,性别这个东西你能说脱下裤子给我看看吗?是不是感觉怪怪的是不是?所以你访问别人的性别,除非别人告诉你,但是你自己是没有办法访问的,所以我们这边写上啊,性别应该是不允许别人访问的啊,不允许,但是你可以自己看是不是不允许别人访问。不允许别人访问。然后呢,像我们的年龄真的好办,因为这个年龄随着什么呀,随着这个这个日期的增长,你肯定会自动增加的,所以年龄是可以改的,然后心脏和肾脏这个东西通常情况下是不允许别人访问的,是不是你不能说,哎呀,把你的心拿给我看看,你真把心心脏掏出去给人看看是不是,看看红不红,黑不黑的不可以,肾脏也不可以给别人看,是不是,要是肾脏可以给别人看的话,那我们现在人类就不用进化了。
12:12
所以呢,我们会发现啊,这里边属性有些可以给别人看,有些不可以给别人看,包括这些功能也是一样,那功能别人能给你随便来调用吗?有些可以,有些不可以,就比如说吃饭这功能吧,吃饭这个功能哎,你不吃我可以强塞给你是不是,我说你给我吃点东西,你不吃我给你灌下去是不是?所以我们可以认为吃饭他允许别人访问啊,就是假设啊,但是虽然也不太合理啊,允许别人访问,你不让我访问,我强制也行是不是。允许。别人访问啊,或者说什么呀,呃,我们就暂时这地行不行,比如说跑步这个就不行,他就说那别人让你跑,你不跑我拉着你跑,但是你就不长腿,他怎么地,是不是你就不迈腿,那就不算跑步了呀,所以跑步我们设定为不允许别人访问行不行,不允许别人访问我们就这么设定的,好吧,但是大家看程序啊,我们程序没有任何代码改变之前,随便哪个都可以访问对不对,为了让我们的程序不能让。
13:12
别人随便访,很多时候为什么叫别人随便访问啊?只要是什么呢?只要是脱离了这个结构之内的访问,我们通通称之为外部访问。正常情况下,对象成员的访问,看我记这上面加象,叫做在这写上对象。成员或者叫类成员都可以啊,成员的访问它是分为多个地方的,哪些地方访问呢?首先当前类或者是对象内部访问,这是一个一点。这是第一种啊,第一种就是在我的类里边或者对象里边访问自己,就类似于什么呀啊,我的身体调用我自己的心脏,那你管不着是不是,那你不能来呀,是不是好,这是第一个,第二个是什么呢?是对象Y叫做什么呢?
14:06
叫类和对象的外部访问,就是你要用我的成员,但你并不是我的什么呀,对象或者类的内部结构,而是外部的,那就不让你用,就比如说在这里边啊,你看在我们这里边可以这样认为,Class里边所有写的代码都属于内部,因为这里边儿就是什么human,就是人类嘛,是不是,这里边不就是人类的所有的内容吗?然后呢,变成对象之后,这就是对象里边所有内容了,对不对?所以在这个结构当中称之为内部,那什么叫外部呢?这简单了,当你实例化对象,对象外边通过对象名点操作。那这种东西通通称之为外部访问,包括你使用类名点也是外部的啊,所以从结构上很好理解,只要不在你这个什么呀,代码组里边的代码。只要不是在你代码组里边的代码,统统称之为外部啊,然后呢,只有在代码组里边的我们才称为内部访问啊,所以在里边给大家标注一下行不行,在这个类的结构内部啊,就称内部就叫做内部访问啊,剩下就是在类的结构外边呗。
15:18
好,给大家记一下啊,在内的结构外部啊,我们就称之为外部访问,明白了吗?所以对象称为访问的两个地方啊,大家一定要区分开啊,只要是在这个结构里面出现代码通统可以认为是内部访问,但是只要离开了这个结构,你实际化对象后面所有的访问都称之为外部访问,明白当然外部访问我们其实还给它做了一个更加细分的话,呃,更加详细的划分啊,一个是正常的外部访问,一个是什么呢?涉及到我们后边要讲的面向对象。类和对象的子类或者叫做子对象中访问,这个我们还没讲啊,因为它涉及到继承,所以我说后面才能讲啊,子类或者子对象的访问,这个也是在类的结构外部啊,在类的结构外部,但是它另外一个要求是在其他类的,或者叫应该叫做子类。
16:18
或者叫子类和子对象的内部。它是一种特殊的啊,我们会在下一小节为大家讲解好了,那现在访问的。这个地点咱也知道了,是不是访问的限制咱也写了,下面就要做实验,到底怎么样来限制别人的访问,首先呢,在这里边。我们现在访问性别、肾脏,唱歌、跑步是不是都可以访问,但我们刚刚自己设定了啊,就是名字,你允许别人访问性别,不允许别人访问啊,我就不能让你在外边访问。也就是说这里边你这个正常情况下,你用Zs.six是不能够调出它的性别的,现在是可以的,是不是,你看难是不是出来了,这个难不是出来了吗?上面这个啊,这个难不是出来了吗?我们现在不让他访问,怎么样才能。
17:06
禁止访问某个成员呢?这就是私有化封装啊,我不让别人用。那怎么办呢?很简单的,如果我们希望性别不允许别人使用,只需要在性别前面加上两个下划线就可以了,也就说,哦,原来我在C前面加两个下划线,这个时候程序再次运行,你会发现程序报错,告诉你属性错误,Human对象没有属性six。当然很多兄弟说这没问题啊,你明明是属性这块加了两个什么呀,两个下划线,那你在访问的时候也加两个下划线不就可以了吗?其实并不是这样的啊,来,你看好了,我在这里边给他。复制一份出来好吧,注释一下这个装加上加上双下划线。然后上面这个咱注释掉。程序再次有点访问,你会发现它依然访问不当,看见了吗?所以只要是你在我们的成员属性名前面加上了双下划线,那么你是不可能在内和着对线的结构外部访问的。
18:07
啊。看见没有,是不是访问不了了?所以这个时候我们就实现了私有化封装。这个就叫做私有化封装之后啊类的外部无法访问,这已经在内的外部了啊,无法访问,好,我们刚刚是把这个性别给它私有化了,对不对?那肾脏能访问吗?现在是可以的啊,来右键运行一遍,你会发现,哎呀,肾脏是不是没问题啊,当然因为我们肾脏也没有做过什么处理,对不对?如果你希望它不能被访问,老规矩加上双下划线就可以了,右键再次运行程序,肾脏也变得不可以访问,即使我们像刚刚的性别加上双下划键,还是不可以被访问到的啊。来双下划线,好把上面这个主角你看,即使装上相线依然访问不当,看见没?他告诉你就是没有所有私有化的成员属性,在外部时不可能被访问到的。
19:08
那很多时候那方法怎么样呢?很简单,方法就是函数,函数本身也是变量,变量和属性是一个东西是不是?所以如果你希望将某个成员方法进行私有化的话,那么就在他的方法名前面加上上下线,我们刚刚写了是允许别人吃饭,但是不允许别人跑,对不对?好,那在这里边跑步的方法给大家看一下,右键运行一遍,现在是可以访问的,12112,锻炼身体,如果你不希望它被别人访问,请在它的名称前面加上双下划线,这个时候就进行了私有化操作啊,私有化操作在程序运行的时候好依然不能够访问,同时在调用的时候还是老规矩,即使我是加了双下划线,还是不能够进行访问的啊UN啊,套生框还是不能访问啊,把上面这个注释掉。好,右边运行一遍。
20:01
看见了吧,所以私有化封装之后,你的方法也是无法访问的。啊,我们叫类的外部无法访问,其实这个类的外部也叫做对象的外部啊,因为大家都知道类最后实例化成对象的时候,它们俩的结构是不是应该是一样的,是不是,所以这个我们通通设置为类和对象的外部无法访问好了,那好多人唱歌能访问吗?能啊,唱歌咱是不是没有私有化过?好,没有私有化的方法是允许大家访问的,来右键。访问的时候你看唱歌是没有问题的,对不对,好,但是接着来私有化的特征,我们明没有完全讲完,私有化的操作啊,或者私有化的方法给大家说一下,在成员属性或者是方法名称啊之前添加双下划线啊,双下划线。啊,就可以叫,就可以私有化成员。
21:06
同源,这是它的方法,私有化之后的特征要跟大家说一下,如果说我们加了私有化,刚刚已经在什么内的外部或者对象的外部访问过了,你会发现是不是都不能调用啊,所以需要注意它的第一个特征就是私有化的成员啊,私有化的成员我没有写属性方法去表示成员属性方法都带着啊,私有化的成员属性和方法无法在什么呀,类或者是对象的外部访问,你是没有访问的,大家很多说那这玩意是不是就没用了,你外边都不让用怎么办呢?没有关系它的,这是它的第一条哈,第二条是私有化成员仅允许在类或者叫做对象的内部访问,好说这个咋弄啊,怎么类和对象内部访问啊,别忘了我们。在上一节中就给大家讲过啊,我方法中是可以调用什么其他方法或者属性的吧,是不是,那这个时候就叫做内部啦,比如说我们给大家写一个新的方法啊,这个方法叫做聊天行不行?
22:13
聊天聊天的方法干什么事呢?用于测试啊,用写错了,用于测试类,或者叫做对象的内部成员,内部访问私有成员啊,我就在里边访问,那首先在里边DF一个拓的方法。然后呢,Print我们可以在里边写上是不是我的名字是多少什么什么东西是不是啊,这个东西大家都知道,我们可以通过sf.name来访问,那因为名字是一个什么呀,没有私有化的,所以访问应该是没有问题的,对不对,好大家来看一下啊。来这个是测试类啊,叫类对象内部访问私有成员。
23:02
好,我现在调用名字啊,调用这个talk talk会调用名字是不是,那大大家看啊,那这个talk。方法是不是在我人类的结构当中啊,那就说明是它内部,那在它的内部要访问它的方法,哎,我们之前学过,是不是如果是对象的话,直接self点内就可访问了,没有问题的,所以在这里边调用我们 Zs.TK啊,你会发现它能够说出自己的名字。啊,当然也是因为名字根本就没做什么操作,对不对,我的名字是张三看到吗?但是大家看啊,我们现在可以确定的是,他的肾脏被我们私有化了。那我该在这里边叭,如说我捡上我有一颗强大的肾脏行不行?好我的肾脏啊,是非常好的,然后呢,是什么样的肾脏呢?SF点很多,说点什么呀,看好了你可别写啊,SF点哎是不是不用加上线加呃KK内就行了,不是的啊,太好了。
24:05
可以确定肾脏私有化了吧,对不对,我们可以确定肾脏私有化了,然后这种情况下访问的时候依然访问不到啊,看到没有,他告诉你人类对象没有一个属性叫KK的,没错,私有化的成员在内部访问的时候也得加上双下划线,这个时候大家再来看。你看我的名字是张三,是不是我的肾脏非趁是一个强大的肾脏,看见了吗?所以刚刚的这步操作啊,这步操作就叫做什么东西呢,在类在哎错了啊,叫在类或者是对象的内部啊。对象对象的内部访问私有成员,我们发现是不是没问题啊,是不是是不是可以。哎,也就是说,即使我们私有化了他的成员,那外边不能用了,但是自己可以用啊,很正常,你的心脏在你的身体里边,别人不能随便访问,但是你自己也不能随便用,那你的血管不连上,它不给你传送信息,是不是已经就。
25:07
给了是不是,所以我们的这个私有化成员,它的主要意义就在于保护某个成员只能为我所用,而不能为他人所用啊,这个是我们的这个私有化操作,当然很多时候你这私有化的是一个成员属性啊,是不是,那成员方法能不能调用呢?行,看好了,我们在里边啊,在。类啊类,或者是对象的内部访问私有的成员方法,成员方法这里边咱刚是不是把跑步给他私有化了,那我就在这边教用跑步行不行,直接通过SF点啊下方先相信re就可以了,然后这次再运行我们的拓方法,你再看一下啊,上面会写着我的名字,是不是访问了一个没有风私有化的同时呢,又访问了肾脏私有化的属性,又访问了我们的这个什么呀,跑步的私有化方法是不是都没有问题啊。
26:00
所以私有化的特征,两个大家应该理解了吗?啊,对内和对象外边没法访问,但是私有化之后,雷和对象内部是可以用的,其实大家想想也对啊,如果里边都不能用的话,那咱这个方法岂不是完全没用?好了,这就是私有化的封装,然后呢,私有化的封装完了之后呢,我们还得给大家讲另外一个封装,什么封装呢?就是我们刚刚三大封装中的最后一个啊,叫做什么呢?公共的封装,很多社保都不讲嘛,咱说了暂时不讲对不对,所以这个已经OK了啊,这个要马上讲。公共的封装又是怎么回事呢?首先公共的封装非常简单,你啥都不用干,因为注意看好了在这里边写啊,公共的封装。公共的封装写错了。公共的封装。好公共的封装有什么方法,以及有什么特征呢?特征好了,那么公共方法,公共这个封装非常简单啊,任何成员在什么呢?在没有进行私有化操作啊,没有进行私有化操作的时候,默认都是公共的封装。
27:19
也就说白了啊,你刚刚写的这个人类里边的是不是我们name现在是公共的age,是公共的heart,我没有进行私有化装,它也是公共的,包括唱歌和吃饭都是公共的,也就是说你只要写一个成员属性或成员方法,它默认都是公共的封装。那么公共封装有什么特征呢?这就很简单了,因为咱什么都没写的时候就是公共封装的话,那我们提前学的操作岂不是都是公共的那类的里边和类的外边咱是不是都试验过了?所以它的特征是公共的封装啊,公共的封装成员属性和方法在任何位置都可以被访问,我管你是内里边还是内外边,你随便用。
28:03
所以公共的封装就就像公共场所一样,随便用啊,随便用就这么回事,所以这叫做公共的封装。好,那么本小节的两个封装就给大家介绍完了啊,我们公共的封装和私有化封装。另外在本小节的最后我给大家揭秘一下啊,叫揭秘可能有点过分了啊,接好干什么事呢?P封装的。叫做PY上P封装的什么呢的叫做迷幻啊迷幻。什么意思呢,其实吧,我们的Python它没有实现啊,没有实现和其他语言一样的什么呀,面向对象封装策略啊,面向对象封装策略。也就说白了还不完备啊,目前来说还不还不是很完备,还不是很完备,因为我们完备啊,很完备,因为我跟大家说过,面向对象是不是发展过来,还没有一些都没发展好啊,对不对,所以呢,在这里边我们的私有化封装其实是有些搞笑的啊,是有些搞笑的私有化封装,它采用了一个叫做什么呢?Name money的策略,Name man Ling啊,Name的策略。
29:20
策略啊,实现的什么呀?私有化操作,很多时候啥叫name money啊,怪怪的,是不是name是一个money,是个词啊,Name money意思叫做改名,改名策略。改名策略,实现策划分成,它并不是真正的私有化。并不是真正的私有化。好好的说,那既然你说他是name morning,到底是什么意思,给我介绍一下呗,行,没有问题,Hum human下划线。写上下划线,PI写错了,PI private,我们写上一个二行不行,然后呢,点击确定,然后把刚刚第一个的什么呢,整个人类给大家拿出来啊。
30:05
私有的也可以放里边,没有关系,我就把整个人类给大家提取了出来,然后提取了出来之后呢,干什么事儿,老规矩,实例化定向啊,实例化定向我们还是张三吧,张三等于我们Hu行一个张三对象就有了,但是我们也知道啊,张三对象里边的一些成员属性和方法是私有化的,对不对?比如说他的肾脏是私有化的。肾脏私有化的话,来访问私有化肾脏啊,访问私有化啊私。有话属性我们的肾脏,这个大家都知道是正常情况是不能访问的,没错,ZS点你写上什么都白瞎,你写上什么下划线,下划线还是不写下划线都一样啊,KI怎么写了个词来着,背不下来啊啊。K,是不是你会发现啊,它是没法访问的程序肯定会报错嘛,对不对,因为私有化了不允许访问啊。
31:02
好,然后右键运行一遍,右键运行一遍。大家看哎,是不是确实不让访问啊,但是但是注意点啊,实际上你可以访问的,因为你只是要知道它的原理就可以,那什么叫做name m呢?实际上当你在这这个成员属性前面加了一个双下划线之后,它会根据啊,根据改名策略,根据改名策略。策略啊,然后呢,将属性修改叫修改为一个固定的格式,什么格式呢?下划线类名啊,然后下划下划下线属性名,也就说白了,你这个KD实际上加双下划线之后,我们的程序帮你改了,改成了什么呢?改成了诶看好了是这么写的啊,是H下划线叫下划线hum下划线下划线KD啊。
32:01
K改成这么个东西了,所以呢,因为改了之后你并不认识他呀,所以你在外边,哎呀,即使啊不加双下划线,哎,程序访问不了,是不是你加了双下线也访问不了,看好了你加了双下线也访不了啊。这个之所以访问不了的原因,并不是它真正的不能够被访问了,或者被监禁起来了,而是因为它改头换面了,所以你如果是真的知道它的改名原理的话,想在外部访问啊,是可以访问的print方框,因为我们知道它改成什么了,改成了下划线类名啊,点下划线,Hu写错了,Hum human下划线下划线。K。大家再来看一下程序运行一遍,你看强大的肾脏是不是在内核地形的外部也访问到了是不是,所以这里边就是什么呀,知晓我们改名策略之后,实际上是可以访问私有成员的。
33:08
这是我告诉你,我们pthson私有化是怎么实现的,就相当于一个人干什么事,我给他的身份证换了,把他整个人的资料都给换了,放到社会上,那没人找不着他的,对不对?因为他的所有资料都换了,你肯定不知道他未来叫什么名啊,那自然找不着啊,如果你真的知道他换了之后的信息是不是还可以找到他,这个改名策略就有点这种保,就有点这种意味啊,就有点这种意味,但是。严禁任何人使用啊,严谨啊,任何人使用该方法。使用该方法,使用该方法访问私有成员,为什么人家要私有,为什么呀,就是不想让你访问,因为你访问了之后,或者随便改了之后,他可能会出现很严重的意外,所以人家才私有化的,明白吗?所以私有化的成员你不要随便去访问,它很容易出现异常的。
34:04
所以这个大家了解了吗?啊,我们的私有化改名策略啊,那私有化改名策略我给大家记一下吧,它是不是它的改名策略其实也非常简单啊。来往后拉一下它的改名策略,改名策略啊,非常简单,将原有成员属性或者是方法名修改为下划线类名啊,下划线下划线成员名啊。这就是他的改名策略的一个实现方式啊,但是你不许这么玩啊,我只是告诉你原理,所以这个东西了解但不许实实际操作啊,了解但是不允许使用啊。别到时候程序又出问题了,你就投发了,明白了吗?所以这个千万不要随意的操作,那这样一来的话,我们的私有化封装以及它的name money策略是不是也没问题了,当然很多学生说,那你能不能访问一下那个什么来着,不是这个能不能访问一下那个私有化的一些其他的方法呀,比如说这个润呢,也能啊。
35:06
你看我这次调用瑞方法行不行,那就是张三啊,点二下划线类名,下划线类名叫human嘛,Humn,然后下划线下划线run套上括号,这样可以跑步啊,你可以看。看到没有,121锻炼身体,但是你看这个润啊,实际上是不是真的私有化了来润是不是真的私有化了一样的,明白了吗?但是还是那句话啊,不允许任何人以任何的方法访问私有化成员。因为之所以要有私有化,就是怕你随便访问出问题,明白了吗?好了,那么本小节我们就为大家介绍到这里边,我们本小节主要介绍了私有化封装和公共的封装,那么公共的方装没有任何访问限制,而私有化封装仅允许在内核定向的内部结构访问。并且需要注意Python的私有化封装它仅仅是使用了一个改名策略来迷惑大家的,或者叫迷惑大家的,但是即使大家知道这个原理,也不要去轻易的访问私有化成员,好吧。
36:03
好了,感谢大家的收看,我们下一小节再见。
我来说两句