00:00
存取器啊,TS里边为了让我们可以有效的控制对对象成员的这个访问啊,可以使用gets和CS来截取对对象成员的这个访问。那么这句话是什么意思呢?也就是说类当中如果有一些属性成员,然后呢,我们可以通过get和set的方式对这里边的属性成员的访问进行控制啊,那下边呢,咱们通过代码的方式来实现一下,看看这个效果啊。代码并不复杂啊,我们呢还是老规矩,首先呢,在这边新建一个文件。零六杠,然后这个是存取器。点TS啊。首先在这儿存取器它是干嘛的呢?是让我们可以有效的控制什么呢?对对象中的这个成员的访问啊,通过什么呢?Gets和C。来进行操作。
01:03
啊,当然写代码的时候我们写的是get和set啊,那这个代码怎么写,咱们来看一下。哎,那我呢,也先来一个class,比如说来一个person啊,我们通过一个小例子啊,比如说就是呃,得到了用户给我传递的姓氏和名字,然后呢,我们可以把用户的姓名拼接起来给他返回去,当然也可以进行修改啊,所以说我们通过一个小需求来讲解这个存取器啊,就是什么呢?外部可以传入什么呢?姓氏和名字数据,然后呢,哎,同时。使用这个set和get控制姓氏啊,控制姓名的这个数据,当然外部也可以进行什么呢修改。操作咱们来看一下啊,首先我在这边来一个first name是一个字符串类型。同时呢,再来一个last name也是一个组串就行,它代表的是姓氏,这个代表的是名字是吧?最终我需要一个什么呢?需要一个姓名的成员属性。
02:13
并且该成员属性外部可以访问,逗号也可以,什么呢修改。那怎么做呢?来一个get,然后比如说叫full name。好,再来一什么呢?Set for。内蒙。好,注意啊,一个是full name,一个是呃,一个是get name,一个是set for name get full name呢应该是读取器。那set for name应该是设置器。气好,那当然了,咱们通常情况下可以这么理解,它是负责什么呢?读取数据的,那下边的这个呢,是负责对,再加上一个线啊,负责设置数据,当然设置也可以认为是什么修改啊,这都行。那么如果是get,我需要进行返回,那它得到的是一个什么呢?得到的是一个姓名的数据,姓名数据是吧?那这个姓名应该是从哪来呢?姓名它应该等于谁呢?姓氏和名字的拼接是吧?所以说我这块return后边我就写的是this.first name啊,再加上来一个下线Z点什么呢?Last name。
03:31
那set for name主要是干嘛呢?通过我的姓名,然后重新的去修改这个姓氏和名字。那这个也是姓名,只不过是什么呢?他会把姓氏,姓氏和名字获取到,然后重新的赋值给谁呢?给这个first。First name和last name啊好。
04:03
那现在呢,我们来看一下啊,如果说现在没有这个set这个代码,咱们暂且先不写啊。然后我们来看啊,如果我在这实例化对象来一个count的PR person等于new什么呢?Person。当然啊,我需要在这里边给他来一个什么呢?来一个构造器会更合适一些啊,所以说我在这这么写constructor。括号。呃,First first first name是一个字符串类型,再来一个last name也是一个字串类型。那我这边就可以写个this.first name等于first name this.last name等于这个last name啊好搞定啊,那我这个位置呢,就给输入,比如说是一个东方是吧,这边再来一个不败,诶那我这个时候通过canl dialog可不可以输出person呢?这个对象呢,咱们来看一下保存。
05:00
刷新一下啊。没有数据是吧,嗯,Con sole啊对了,我们需要在点这个里边去引入啊。嗯,点杠这个是零六好保存一下。现在我们再来看一下这个结果啊,来看一下。我们可以看一下person对象里边有个first name,还有个什么呢?Last name,那有没有其他name呢?还有一个full name,那这个full name里边存的是东方不败是吧?哎,有,既然有,那我可不可以访问呢?can.log括号,诶,Person点什么呢?For name保存一下。很明显东方不败可以拿到是吧,好,那这个时候了,这个就属于什么呢?获取获取该属性成员数据对吧,那它在获取的过程当中,必然会进入到这个get里边来啊,咱们可以测一把get中点点点。我保存一下。啊,大家来看一下get中是吧,东方不败啊,也就是说我获取数据的时候会自动进入到get当中是吧?好,那我现在在干嘛呢?设置该属性的这个成员啊,设置该属性的数据。
06:13
Can,直接写上什么呢?写上这个吧,person.full name等于啊,比如说叫诸葛孔明往下线,我们看一下它报错了啊。他说无法分配for,因为它是什么只读的属性是吧,有点相当于是read only啊好,这是我只写了一个get是吧?我现在要设置这个属性的值,怎么办呢?我再写一样一个set,那在这里边可以传入一个数据。之后呢,注意啊,大家看一下,当我SET1写完之后,那就说明这个位置没有报错是吧?那就说明什么?那就说明此时这个full name属性的值可以被修改了是吧?那我怎么做呢?把一个这个写法吧,比如说叫内等于负等于这个V l.split。把里边的这个下压线给它切掉。然后呢,此时重新设置这个first name和name啊z.first name就应该等于当前的name中括号零是吧?啊this.last name就应该等于内S中括号一了啊,格式化一下,保存一下我们再去保存啊。
07:10
先把它做掉。啊,再来看一下。操呃,Get操作是吧,东方不败现在是没有问题的,而且呢,我的person里边确实有这个phone name是不是啊能够获取,那我能不能设置呢?我就改一下值,然后呢,我再去输出cancel.log括号,这个person什么呢?For name保存一下。好,我们现在来看一下啊,这个诸孔明是不是可以设置吧?啊,那什么时候会进入到set呢?咱们再来看一下cons.log括号set。然后点点点吧,中点点点。好注意啊,应该是我这行代码是吧?诶。我们再来看一下。大家看一下set中是吧?啊,Get中是因为我在这个位置又重新获取了一次吧,这就是在TS里边,通过S和gets可以控制属性成员的这个访问及设置啊呃,好了,那注意啊,如果只有set,那就是只能设置,如果只有get,那就是只能读取,如果两个都有就是什么呢?可读可写。
我来说两句