00:00
好,下面呢,咱们来看看这个read洞only修饰符啊,这个东西呢,挺有意思,然后呢,有了它之后,咱们还能够引出了一些隐藏的知识点啊,那咱们来看一看啊呃,首先呢,在这边我还是之前的方式啊,创建一个文件,咱们单独的去讲解它去啊,Readon ly修饰符点TS。找到我的m.tS把之前的这个代码注释掉,然后重新的去引入一下当前这个read only修符的文件保存。那前边的文件呢,我就关掉了啊,只留下这么一个。呃,Read ly修饰符它是干嘛的呢?首先啊,是一个关键字啊,然后呢,它可以对类中的属性成员进行什么呢修饰。那修饰后呢,就变成了什么呢?该属性成员,该属性成员就怎么了?哎,就不能在外部被随意的修改了。
01:10
咱们来看一看啊。括号括号。我们得先把这个基本的代码的架子给它搭建起来啊,定义一个类,简单一点。Class。Person。括号来一个内幕属性吧,啊,那我这块写个注释啊,这么写这个是属性。紧接着呢,我再来一个constructor括号。这里边再来一个name,这是基本的代码了啊,this.name等于name啊,这东西特别有意思。嗯,方法呢,我就不给了是吧,然后呢,我在这儿做业,方法我先给一个吧。比如说就叫做c hi吧。搜点落个括号啊,靠你去吧。
02:03
好,然后呢,逗号,我写个this name啊。呃,在这实例化对象。Person,冒号person等于new person,那我给他一个名字呗,叫肖甜甜。好,然后呢,在这O点落个括号。Can点那个括号person.name啊,方便我们观察,所以说我这个代码才这么写的啊,格式化一下啊,同时呢,我再来一个person.name等于大甜甜,大甜甜好保存一下啊,我们先看一下基本的代码。嗯,好,有一个烹饪对象里边有个内幕属性啊,是大挺田啊这块呢,也是大挺田是吧,那这块是因为修改了嘛,之前没有修改的时候啊,是这个样子的,我这样啊放到这儿来。这样大家可能会看的更加清晰一些啊,Cancel,点个括号啊,person.name。
03:06
没有修改之前呢,是小甜甜啊,修改之后呢是大甜甜是吧,好。呃,然后在这个里边啊,注意我得我得把这边刷新一下,否则大家可能会看起来别扭啊。现在呢,我就要说说这个read only了啊,那它呢,可以在这个属性成员前面加上,大家可以看一下它是一个关键字啊,蓝色的。然后呢,加上之后呢,现在注意我下边发没发现他就直接爆红了吧,说无法分配到name,因为它是只读属性啊。说明第一个问题啊,这个关键字对类中的属性成员进行修饰,修饰之后应该叫做修饰后啊,该属性成员就不能在外部被随意的修改了,所以说现在可以看出啊,外边你就修改不了了是吧,好。此时无法修改逗号啊,无法修改啊,嗯啊,因为。
04:00
内幕属性是什么呢?只读的是吧,只读就是不能再修改了啊,所以说编译呢,也会报错啊,保存一下啊。把这个注释要保存一下啊。好,那现在我们再来看啊,我如果把这行代码也除掉了,如果说这个属性被瑞动O修改之后是只读的了,那我在这个位置不是传进去了一个数据吗?这个数据就就给了name是吧?Name呢,又给了这个list name这块怎么没有飘红呢?然后保存一下,我们来看看行不行啊。果然是小甜甜,小甜甜就说明了什么?虽然说内幕属性被read only修饰了,但是我在实例化对象new这个person的时候,传入的数据给了构造函数,构造函数的内部是可以修改这个属性的数据的,是吧?那我就想了。如果说我在这个位置Z点内等于。大天天可不可以呢?然后我们来看一下无法分配到内蒙,因为它是只读暑假,那也说啊说类中的什么呢,类中的这个普通方法中逗号也是不能修改read。
05:14
2Y啊,修饰的这什么成员属性值啊,又来一条了啊,类中的普通方法中也是不能修改only修饰的这个成员属性的值的啊好,我把这个主教这是不能修改的啊,但是这个东西叫什么?叫做构造函数是吧?哎,构造函数,所以说我们上面又可以加一条啊,什么意思是吧。构造函数中啊。那么可以干嘛?可以对只读的属性成员的这个数据进行修改是吧?哎,那我就想了,那我在这个位置可不可以再来一个this.name等于什么?哈哈呢,然后保存一下,其实道理是一样的,编译都可以成功是吧?然后我们再来看一下刷新,哈哈,是吧,也没有问题啊,是可以的啊,这个没有多大意义啊。
06:07
好,注意我们再来看啊,那我就想了。我的这个位置是给了他一个初始化的数据。通过这个小甜甜这个数据给了name变量,或者说参数,参数的数据给了这个Z点内,它是一个只读属性是吧,那我就想了,怎么办呢?我可不可以这样做啊,怎么做给他一个初始值。比如说叫什么大天天对吧,我就想知道,如果说我在这个里边没有。没有这个参数,那我这个位置必然也不能传了,是吧,那我这个位置也没有什么意义了,是不是,那我就想了,这个时候这个属性的数据我能不能读取出来呢?是吧?我在外部可不可以进行修改呢?保存一下,我们先来看一下啊。刷新里边仍然有内幕属性,它的值是大甜点,然后呢,外部也可以访问是吧,那我想外部可不可以修改呀,把它打开吧。
07:01
我们再来看一下,也是不能够被修改的啊,好,那我们再来说说,如果构造函数中没有任何的这个参数啊。类中的属性成员此时已经使用read。进行什么呢?修饰了,进行修饰了啊注意啊,那么。那么什么呢?外部也是不能对这个属性进行。对这个属性值进行什么呢更改的啊,外边也是不行的啊,注意啊,但是大家可能会想到说,如果我要这样做的话,好像没有多大意义了是吧,这个name属性的话,我也没有办法给他修改值了啊,是吧,或者说我想给他一个初始化其他的值啊。啊,那我就写了,那我就这样呗,是吧,我就想把小甜甜给这个内,那我没有办法,我就只能这么写啊,并且把下边这个代码打开,此时我们再去访问,它就不是大甜甜了啊,是小甜甜了,我们可以看一下是吧?啊就只能这样做,你希望在实例化对象的时候,能够让这个内幕属性是得到的内容是这个小点点的话,那就只能这么去做了,否则你要是不给他传任何值,它内部只有一个初始值啊,这个属于初始值。
08:23
初始值啊,好,那我又想了一个问题。我把它除掉啊,我通过read only去修饰当前的这个属性,我不给他初始值。然后呢,我可不可以在这个位置给他一个初始值,比如说叫大天天是吧,大天天,那我这个位置现在我就想了,它的内幕属性里边存的到底是大天天还是小天天,我们来看一下。刷新。什么小甜甜,因为什么,因为我的小甜甜给了这个什么内幕属性,那这个name内幕啊,应该说内幕参数啊,那这个内幕参数本身虽然说有初始值,但是由于小甜甜给了这个内蒙是吧,所以说最终存的还是小甜甜好,那我这样做。
09:01
如果说他没有值呢,现在结果是什么呢?现在结果应该是大甜甜对吧,没有问题,好,那我这块呢,我还是写这个小甜甜啊,现在我们要明确这么几件事情啊,第一说reason only修饰,它是一个官字啊,它修饰的这个属性生源是只读的,针对是外部,外部你是不能再修改的了,但是呢,我可以在初始化这个对象的时候。是吧,或者说实例化对象的时候,可以对这个只读的属性进行初始化操作,然而也仅仅如此了,普通方法当中是不能对这个只读属性进行修改的,但是构造函数当中是可以对这个属性的值进行修改的,是吧?好,我们可以在最开始为当前这个只读属性进行初始化值的这么一个操作,也可以在这个里边给这个什么属性啊,给这个参数啊,给这个参数一个初始化的数据操作啊,这都是可以的,然后啊,紧接着不要急。还有东西,还有东西。注意看啊,这个时候我做件什么事情呢?我把当前这个代码啊,全都给它注释掉,我不要了,重新来一份啊,重新来一份。
10:05
咱们上边说的这个位置啊,主要是讲了一个什么问题,这个问题我写一下啊。主要讲的是re ly干嘛呢?修饰类中的成员属性操作是吧,得到的上边的一些结论,现在呢,我要说的这个问题是什么呢?是。Rely,干嘛呢?修饰类中的构造函数中的这是什么呢?参数?那这个可以叫做参数属性啊,可以叫做参数属性,那我就把这些东西呢,全都干掉,不要了啊,注意看干净一点,这个东西我也不要了。然后呢,在这个里边。嗯,我先把这个c hi方法去掉啊,这样看起来会明显些。现在呀,我格式化一下,应该说这个类当中是没有属性的是吧,但是呢,我在这个位置用read only给它修改一下。
11:06
这样read only1修饰了这个内幕参数之后,此时这个内幕参数我们可以把它叫做什么呢?参数属性。比如说啊,构造函数中的。内幕参数。一旦使用rely进行修饰后逗号,那么该name。参数可以叫什么呢?叫做参数属性。啊,或者属性参数这都可以啊,诶这就奇怪了,为什么这个位置没有报错呢。是吧,那很神奇啊,那我这个person name可以可以访问吗?然后我们打开这个界面刷新一下啊,看小甜甜,也就说明我的这个小甜甜的这个值给了这个name是吧,虽然说他有处值,但是我给了这个name,而这个name又给了this name。说明一个什么问题?说明此时在这个person利当中有了一个内幕属性成员。
12:03
是吧,那我如果说把它去掉呢,你放上哪访问这个name呢,访问不到是吧,它这个person里边根本就没有内部数据是吧,但是我加上一个read only之后,诶。它的cos当中就有了内幕属性,好继续啊,那我们说如果说构造函数中的内幕参数,当然其他参数也是一样的,一旦使用read only进行修饰后,哎,那么。什么呢?Person类中就有了一个name的属性成员了,哎,很沉很神奇是吧?好,那我就想了,我能不能把这个东西去掉呢?是吧,我再去保存,我们再来看看。刷新还是小甜甜是吧,还是小甜甜啊,当然啊,这个位置是给它的一个初始,初始化值没用上是吧,我现在把它去掉之后呢,我们再来看。有没有用上,用上了是吧?哎,用上了啊,这是肖甜甜,我把它写上,我这个位置可以不用再写this name了。
13:03
是吧,写这4.name无非是为了访问当类当中的这个内属性生源现在是什么呢?我只要加上read only之后好了,哎,那你这个类当中就有了这个什么呢,内幕属性了,那我就想了。那我此时可不可以这样做呢?点name等于什么呢?真好吧,我们来看吧,我随便写点东西啊。无法分配到内幕,因为它是什么只读的注意了啊说接着说。说构造函数中的内部参数。一旦使用read only修饰后。哎,再加一条是吧,那外部。也是无法修改。类中的内幕属性成员值的是吧?哎,我虽然说通过这种方式为这个类当中增加了一个属性,增加了一个内幕属性,但是你外边也是不能进行修改的啊,这要注意好,那我就奇怪了是吧?既然如此,Read only可以在这修饰我的这个参数。
14:07
是不是,那我就想什么呢?嗯,我可不可以把这个位置给它换一个另外的修饰符呢?比如说我的pub l呢。是吧,那我下边可不可以进行修改,可不可以进行访问呢?我保存一下,我们再来看一下啊刷新诶可以,小甜甜原来是小甜甜,现在是真好是吧,因为正好我在这改的嘛,所以说就变成真好了啊,我换成佐助吧,这样大家可能看的更清晰一些啊,佐助保存。啊,OKP当中确实有内幕属性是吧?好,那我们再加一条啊,就什么呢说啊构造函数中的内幕参数。注意啊,我就复制到这啊,一旦使用了pub。PU进行修饰后。进行修饰后啊,那么这个person类中。
15:04
就有了一个啥呢,公共的这个内幕属性成员了,好了,那按照这个方式往后推吧,是吧,我在这个位置能不能换成一个什么呢。P呢?Private我们再来看啊,保存编译已经报错了啊,这属性内容为私有的,只能在类person中访问,然后这个位置也是这个提示信息,好跟上边的这个几乎是一样的啊,说构造函数中内幕参数一旦使用了public进行修饰后,当然不是public换成一个啊,Private进行修饰后,那么P森类中就有了一个什么私有的,私有的内幕属于成员了是吧?那依次往后类推再来,嗯,复制出来啊。把这个打开。格式化一下啊,那我这个位置可不可以换成prod呢是吧,然后我外边再看一下啊,这块仍然报错,说name是受保护的,只能在person类及其子类中访问,这块我就不再去解释了,这就说明什么呢?又来一条啊。
16:14
构造函数中name属性一旦使用了什么呢?Protected proct protected进行之后,那么person类中就有了一个什么受保护的内容属性了。受。保护的内幕属性成员了啊,当然此时只能在本类和派生类中访问及使用是吧?哎,注意了,外边还是不能访问的啊啊,那么我把这个就注释掉了啊,现在啊,我们来稍微做一个总结,当然这些东西我就不要了啊。不要了啊,稍微我们做一个总结。首先啊,Read only修饰符是一个关键字,可以对类当中的属性成员进行修饰,修饰后呢,该属性成员就不能在外边被随意修改了是吧?构造函中可以对只读的属性成员进行什么呢修改?就是刚才我们这个位置所讲的啊,如果构造函数中没有任何的参数,类中的属性成员此时已经有了为动物类进行修饰了,那么web也是不能对这个属性值进行什么呢修改的,还有在这啊,在这。
17:18
构造函数中的内幕属性,或者构造函数中的属性一旦使用了read only修透,那么这个内幕属性叫做什么呢?参数属性,同时这个类当中也会多了这么一个属性成员是吧?而且外部也是无法进行修改的啊,而且构造函数当中的这个参数可以使用public进行修饰,也可以通过进行修饰,还可以通过protected进行修饰啊,所以说我们在这啊再加一点。重新写一下啊,构造函数中的这个参数可以使用什么呢?Read ly进行什么呢?修饰多少?一旦修饰了,那么该类中就有了这个只读的,只读的这个什么呢?成员属性啊,外部可以访问,但是不能什么呢修改啊,然后同理构造函数中的这个参数的参数可以使用pub l及。
18:20
呃,急急什么呢?P和这个ped进行修饰啊,修饰啊,那么无论是哪个进行修饰,那么该类中。都会自动的添加这么一个什么呢,属性成员啊。保存一下以上呢,咱们讲的主要就是这个read物类性符啊,它的这个作用一个是只读的,一个是什么呢?可以为当前这个类添加对应的只读属性操作啊。
我来说两句