00:00
好,那么接着呢,咱们展开去说,来接着看这个里边啊呃,已经体现了对这个Le的一个封装了,那么我们再来想,咱们呢,平时掉这个属性的时候,实际上呢,体现了两方面的一个调用。一方面呢,是赋值啊,就像咱们刚才那个叫setle一样啊,这就叫赋值的操作,另外一方面呢,是不是还体现为我去调用啊。比如说呢,咱们现在呢,我想去这个调一下,像这个A点内,这个时候我们调这个属性呢,并没有在负值,只是呢,想看一看这个值到底是多少。哎,这个诉求是不是也是很合理的呀?哎,对的啊,但是呢,你想想,由于我们是不是把这个Lex已经给他私有化了,导致我们现在呢,想赋值的时候呢,倒是可以通过这样的一个方式赋了,但是你现在想掉这个Le,我想看看这个腿到底几个是不是就没有办法直接掉了呀,对啊,那我们不能说呢,你把它私有化提供了一个功能,但同时另外的功能缺失了,这个也不合理,所以呢,我们通常呢,还会提提供着另外一个方法,哎,对,这个方法呢,就是来获取你这个属性的值的这个操作啊,哎,我们把它呢叫做get方法,就是当我们调列方法的时候呢,你把这个属性的值呢,你告诉我,那是不是需要返回值了。
01:16
哎,那自然而然的就是in的类型啊,然后叫get likes需要行参吗?不需要,不需要吧,不需,哎,就像说你去某一个朋友那块拿了东西一样,这叫get,你空手去就行,然后呢,拿回来了,这叫get。啊,你要叫set呢,就是它比如说某个东西坏了,你想去给他修一下,你得拿着这个你这一个好的件,你过去给他修好,修好就完事了,不需要返回了,是吧,形象点去理解一下啊,所以这个方法呢,不用返回值,然后我们在这里边呢,比如说你要是也没有其他的一些所谓的限制条件了,那我就直接呢叫诶return LA。哎,这个呢,体现为叫对于属性的设置。
02:03
嗯,这个呢,就是对于这个属性的一个获取啊好,那这样的话呢,我们关于原来啊,你能够直接操作一个属性呢,实际上现在当你把它私有化以后,我们主要呢,就体现为两方面啊,一方面呢,就是关于这个属性的一个set,一个呢就是get,所以呢,我们可以把这块就是我现在加这个圈住的这一部分啊,我们可以呢,算成一个稍微完整的一个关于属性这块的一个封装性的体现啊这我呢在这儿呢,可以写一下啊封装性的体现啊,怎么体现呢?哎,我们将啊类的属性私有化。哎,就是将它的呃属性的private化啊,然后呢,同时诶同时呢,我们就要提供公共的这个方法啊,这个来获取和设置啊此属性的值啊,那么公共的在咱们这里边就是public的意思,嗯,公共的方法来设置和获取此属性的值,这个获取体现的就是一个get,哎,我这叫get叉叉叉了啊啊那就看你这个属性,这个属性呢,相当于它就是一个叉叉叉啊,把这个属性叉叉叉呢,我们这就叫做get叉叉叉啊,设置呢体现为就是它的一个赋值,哎,我们呢叫set,哎叉叉叉。
03:37
行,那这儿呢,就看作是咱们这个关于这个属性这块的它的一个封装性的体现啊,我们不让呢,这个用户直接呢,这个用户其实就相当于相当于又调你这套东西的这个人就叫用户了哈,好,我们不让呢,这个用户呢,直接呢去调这个私有化的属性,而是呢,通过这个公共的方式呢,来get和set,这就是它的一个体现啊,需要大家去体会一下,这个要清楚以后,那我们是不是相应的也可以把这个name和age也给它私有化呀,对的啊,那么需要落地大家掌握的第一个点就是你要会。
04:14
给他私有化,同时呢,提供公共的方法去get和set,比如说比如说啊,我就不都这样去操作了,我们把这个age呢给它private一下。那就意味着出了这个类以后,你看我们就不可以直接这样的方式去掉了,哎,仍然是is not visible,哎,我们就得把它注释掉啊,就得注释掉了,那你要想呢,能够调用我们这个A,必须呢,在我们这个里边啊,提供关于呃,这个属性age的这个get和set方法。哎,这两个方法,这两个方法呢,需要今天呢,能够大家写熟啊,那get public有没有返回值。
05:05
Get,有get age有没有行参没有,哎,你要是没有其他限限制呢,那直接return一下age啊,然后set方法有没有行参啊,有没有繁殖,没有设置嘛,就不用带回来东西了啊set age行三有没有一定得有你设置设置你不得带个东西去吗?呃,如果你要有一些额外的限制条件呢,你就这块加上,呃,如果要没有的话呢,这块我们就可以先简单的就直接呢把A呢就付给A就可以了。好,这呢就是对应的这个叫get和set方法,哎,叫get和set方法啊,大家呢,要今天把它写熟啊,就这两个方法呢,它还挺有互补性的,一个呢有返回值,一个没有啊,一个没型材,一个有型,参看这个你记一下啊好,那这块咱们看成是封装性的一个体现,注意这叫封装性的体现。
06:06
这个不等同于封装性啊,不等同于封装性,这个能理解,不就是封装性的话呢,你要画个圈,这都叫封装性,那这里边儿呢,只有其中的一个点说的是他,你不要把这一个点呢无限放大,说他就等同于我们这个大圈了,就跟说你说这个人是一个好人。啊,要是普通的朋友说你是个好人,你还挺高兴,如果你要追这个女生,他一扭头告诉你说你是一个好人哇,这时候感觉要崩溃了是吧,肯定没戏啊,就是,哎,如果呢,你是个好人啊,你是个好人的话呢,其实体现为有很多方面,比如尊老爱幼啊,这个这个还有什么呀。过马路遵守交通红绿灯啊是吧,这个车上让座呀,等等等等等等等等,哎,那么这些综合起来都是一个好人的标准,那你这里边呢,你呃,这个在车上呢,给一个老太太让座了,她只是你是好人的一个体现而已啊,只是你的一个体现而已,有这么多体现的啊,这个大家要注意一下,这呢也是一样,这只是封装性的一个体现而已。
07:19
嗯,为什么要说这个事呢?因为经常呢,在面试的时候呢,比如说问到了说诶谈谈你对面向对象三大特征的理解啊,那其中第一个呢,就是封装性了啊,那你就直接说了一句,说我们呢,把这个类的属性呢私有化了,同时呢,我们提供公共的方法呢,去get和set,说这呢就是封装性,这就是封装性是不对的啊,它只是封装性的一个体现而已啊,一个体现而已,那就意味着封装性是不是有很多这种体现啊,对的啊,那咱们可以简单的,呃,这个再拓展一下啊,那封装性的体现呢,其实很多。那其中的一个呢,就刚才咱们看到这个所谓的叫私有化属性,就是如上的这一个啊,那还有其他的体现,比如说啊,比如说呢,你想想我们要是一个类当中一个类里边呢,我们提供了方法方法,方法这呢我叫public,这叫public,这叫public,咱们前面说过了,方法呢,默认咱们现在都写成public。
08:19
就是其实呢,其实它就是一种权限哈,就我外边呢,随便可以调,但是如果说要有一个方法呢,我不给你声明成这个public的,我写成一个private了。就像这个属性一样哈,我把这个方法呢,标志成一个私有化的了。那你想想是不是就意味着我们这个方法就不可以在外边掉了呀,哎,那不能在外边掉,你说它造这个方法的意义在哪呢?我内部使用啊,对吧?哎,咱们在这个类当中呢,是可以用我们这个私有的方法的,这就是人家造这个方法的一个意义,就是他对外呢,不公布这个方法啊,我是对内使用的啊,比如说呢,咱们这个类呢,就是涉及到排序,各种排序方法啊,这个叫冒泡,这个叫希尔排序,这叫直接选择排序等等好多种排序,然后呢,我们就写了一个方法,就叫做交换两个位置变量的这个操作,然后这个呢,我就不对外暴露,我对外暴露呢,就是各种排序方法,然后我这个交换的元素,这个操作呢,每一个方法里边都会用,那我就给抽取出来了,我不对外暴露,我就那边用里边用,我就private一下,然后在里边呢这样调,这呢也是封装性的体现。
09:35
啊,所以这个呢,第二个你可以写成呃,不对外暴露的私有的方法。哎,暴露哎的这个,哎私有的这个方法,哎这呢也算啊嗯,其实后边呢,咱们这个讲了构造器以后啊,在讲了这个死在这个关键字以后呢,我们提到一个设计模式叫做单利模式,哎单利模式当中把那个私有的构造器呢,也给呃把构造器给私有化了,诶这其实也都是体现等等等其实很多。
10:09
啊,就是这块还没讲啊,我们就先写上了,也就是说大家呢,先要明确一个事儿,就是这个呢,只是封装性的体现之一,它呢不等同于封装性本身啊。好,先明确这个事儿。
我来说两句