00:00
好了,同学们大家好,那么将现在开始,我们就在本小节当当中为大家讲解一个特殊的参数,什么东西呢?面向对象当中的surf,记录一下surf相关信息啊,相关surf这个特殊的参数。好,创建成功。首先呢,为了学习,我们四口就以我名为名,呃,就以我来命写一个类吧,行不行,写个同号类啊?然后这个时候呢,我们在里边声明一个同号类,声明一个从号的类啊好。那在里边怎么声明呢?Class,诶,Cono是不是从后好类有了,那么为我们当前的类来添加一些成员属性和成员方法好不好?成员属性和成员方法?然后成员属性这块,比如说我们加一个name呗,行不行,Name就是从浩,因为这是专门做我的类是不是,所以这个name就叫从浩行不行,然后呢,Six哎,性别,那这里边的话,我是个男的,是不是写一个男,然后呢,Age是不是写一个18岁,然后呢,接着来啊肤色,我的肤色是黄色,Y EL lo,以此类推,比如说我的身高het啊,身高等于180是不是厘米,然后体重等于180斤是不是,然后呢,我们的这个还是什么来着。
01:34
还有这个长度,呃,是不是长度啊,这个身高体重,还有这个卓面积是不是house啊,等于180平,是不是就写这家数字吧,行不行,你也可以写成字符串叭,如说如果说我要写成单位,那就写成字符串180,这个是身高180厘米,体重180斤,是不是斤啊,就写汉字了,180斤。可不能写KG啊,那我就称猪了啊好,然后呢,在这里边,然后呢,这个180平啊,M100M2啊,180平米,咱写成一个字符串的事,好然后这个时候呢,我们再加一些功能,那我会干什么事儿呢?是不是我是一个人类啊,我会干的事可多了,是不是,比如说诶。
02:18
我会聊天,是不是take啊,Talk?然后就在里边print,是不是我给这里写什么都考好了,叫我的名字是从浩。然后呢,我还可以干什么事呢?我还会唱歌啊,Sing啊sing啊sing啊,我会唱歌,然后写什么东西呢,我就写上啊。呃,你存在我深深的脑海里,是不是啊,你存在于?我深深的脑海里,好,这就我在唱歌啊,然后还干什么事呢?我还会洗澡对不对?洗澡怎么说?呃,Was是吧,好像这么写的吧,我是是好就这么写吧,洗澡我们就写上print啊,要叫做什么沐浴露。
03:07
和小香皂。沐浴露和小香皂。忘了沐浴露和小香皂。水温是不是刚刚好,是不是水温。啊,刚刚好。OK,然后呢,我洗澡,然后这里边我写了一些成员属性,是不是聊天啊,也写了一些成员方法叭,如说唱歌是不是唱歌以及呢,干什么事呢,写出了这个洗澡的方法,好洗澡,OK,那在这里边我们是不是写了一个累呀,但是我之前跟大家说过啊,我们说过在学习面向对象或者使用面向对象相关信息的时候呢,通常情况下我们是不会直接使用类的,对不对,而是使用的是对象,是啊,你想跟我聊天,你不能用创造我的泪来玩,是不是你得把我做出来这个从浩在你面前你才能跟他聊天,是不是他才能洗澡,才能唱歌,所以呢,干什么事呢?好了,现在我们要实例化一个对象,也就是做出一个我来,是不是做出一个同号啊对象好,没问题,来这个对象叫CH行不行,CH然后呢,等于我们的从号。
04:19
然后这个类啊,用它的实例化操作,这样一来的话,我们是不是得到从号对象了,是不是,然后你想如果想看一下是不是同号对象的话,你打印CH是不是就可以了,右键运行一遍程序,大家就可以看到啊,哎,写错了哪块,是不是忘结束了,我看一下啊,上面说的是语法错误,结束的位置有问题,那这样一来的话,它提示的是第十行左右往上看。第十行左右。第十行左右180平house等于180平。有问题吗?没看见哪出问题了。冒号。字符串引号。
05:03
不是他的事儿啊。House等于180平,来,我们来看一下问题出在哪哈。他说这个。有问题,我没用眼睛,我是没看出来哈。等于180。哦,这个逗号不对,看见没有,这是一个中文逗号啊,这是一个中文逗号,看见没有,中文逗号在这呢,所以问题在这儿,看见没有一点小差错就看不出来啊,因为编辑器里边中文和英文逗号非常的相似,好了这次再运行就没问题了,好,我们看一下我们从号对象是不是已经打印成功了,从号这前面告诉你是从号类做的,后面告诉你这是个对象在内存哪个地址是不是好,也就是说我们现在从号对象有了,有了之后呢,我们下面干什么事呢?使用这个对象啊,使用对象。这貌似没什么问题,因为我们之前是不是也学过啊,是不是使用对象好,然后呢,看什么事呢,看好了,我在这里边有一个小小的要求。
06:03
我要用从号对象说自己名字的时候,要从什么呀,对象里边来取他的名字,而不是直接写出从号这个字符串能理解什么意思吗?简单的说,在此处啊,此处需要使用对象。找对象的属性来输出名字,然后呢,性别年龄等,因为我们聊天时候可以不聊很多句嘛,是不是,我的名字是什么,然后呢,后边可以说啊,我是男的是不是,我的性别是什么是不是,然后我的性别是什么东西是不是等等着我们来写啊是不是?然后呢,还有print什么,我的年龄是多少是不是。我的年龄,我的年龄是多少?当然很多学生说,那你直接写不就完了,你的性别是男?
07:00
然后呢,年龄是18。但是大家需要注意啊,那我万一变性了呢,我万一就是过了一年年龄增长了呢,是不是也是上面这些属性如果被修改了,那你怎么办?你还打算啊,我改变上面属性还是像方法里再改变吗?显然是不现实的,也就说我们在这里边啊,使用聊天功能,或者叫做调用聊天功能。看好了要用聊天功能就出现问题了,聊天功能,然后在这里边从号是一个对象啊,点talk直接调下就可以了,然后右键运行一遍程序,程序自然不会报错,而且可以使用,是不是?他说啊,我的名字是从号,我的性别是男,我的年龄是18,然后接下来看,如果说我们对于对象的成员进行了修改,或者叫对象的属性进行了修改,该怎么办呢?比如说不叫从号了是不是啊,叫做什么呢?叫从良。啊,再从量。良,良心的良是不是,然后呢,性别改成女了啊,年龄改成28了,好,右见运行为正据,你会发现,诶,你打印的时候,聊天的时候数据还是你之前写的数据吧,是不是因为它不能够动态的从我们对象中获取实时的数据,所以这样一来就密,就犯了程序中一个非常严重的忌讳啊,叫什么呢?程序写死了,当程序写死的时候,后期维护呀,要修改呀,或者它的可变性啊,都会非常的差,为此我们要求大家干什么呢?在这里边要动态的获取。
08:34
成员或者叫做对象的信息,你要写名字,行,你把上面的名字给我拿来,你要写性别,行,把上面的名字给我拿下来,那怎么样才能获取上面这些信息呢?当然很多学生,哎,这个我会,你看我想要名字,我们可以在里边通过,因为当前什么呀,当前类是什么类呀,是从号类对不对,从号类啊,我可以写从号点name,我们说这个问题吗?没问题啊,你看好了。
09:03
确实可以得到从良是不是改变了很多,说哎呀,我把这个放这不就行了吗?啊,你要名字我就给你从号点那么。好,你要名字给你错点name对不对?呃,放后边啊,这应该使用字符串连接才行对不对,好加上啊从号点name,你要性别没问题啊,我再给你加上一个从号点six不就得了吗?Six这个是找个E啊。然后你要年龄行,我给你加一个,我给你加一个从号点什么呀。年龄是age对不对?好这样呢,一来的话,我们写出来了有问题吗?没问题,你看好了程序运行的时候你看。哎,报错了,程序报错了,报什么错误了,看好了告诉你对象没有属性am我写错了,上面这个E要弄丢了啊,把它删了吧,行不行,把这下删了不要。因为刚刚是做事的嘛,好再来一些程序,你会发现,诶,他读的确实是嗯,哪块没写完。
10:01
哦,Age是一个整形啊,所以你需要转换成字符串才能连接,这个是一个小小的,呃,需要注意的地方哈,好来右键运行一遍啊来看。好有没有问题,没问题啊,从两女28是不是你再给这上面改,把上面改成从号啊,改回去,然后不是好啊号。然后呢,男。总号啊,然后性别男年龄18是不是好,右键运行一遍程序,你可以发现,诶,他是可以实时变化的,这好像没有问题对不对,也就说我们实现了动态变化,但是实际上这里边还有问题啊,为什么呀?因为你这里边请注意啊,这是从哪从类里边要的信息,也就是说你是直接经过类要的信息。但是不知道大家有没有印象啊,什么意象呢?我们上节课说了啊,在我们的这个类和对象的使用过程当中,对象是可以改变自己属性的,哎,那个图没出来啊。
11:03
稍微有点慢啊,应该是。改没出来的啊,上面上节课那张图,我们第一项改了自己属性之后,就存在自己里边了,对不对,也就是说白了,如果说我在什么呢?你现在写的是从号点name获取的时候,貌似没有错误,那是因为你改的是人类本身的,但是如果你在这里边修改了从后的信息,也就是这个对象啊,看好了,在这里边我们要修改。在后面加吧,修改对象信息啊,修改对象信息,比如说名字改了行不行,那从浩的name我不叫丛浩了,我叫从好行不行,我叫从好。从好啊,你好,我好,大家都好的好。行不行,好从好没问题,好,但是大家注意,你看我这次访问的时候。它输出的是谁还是同号,也就是他还是找类要的,但是如果大家真的打印这个对象来看的话,Print写错了,Print套上括号,写上CH,点下线向量D啊,大家是确实可以看到CH这个对象所对应的name确实被改成了从好已经记录到对象里边去了,对不对?但是我在聊天的时候获取的数据,由于之前写的是类名,所以改了也白瞎,也就是这种方式看起来可以用,但实操的时候,实际操作的时候,它是不可以这样用的。
12:34
明白了吗?因为你改了这项之后,修改的数据你是读不出来的。而我们用的就是用对象的嘛,是不是又不是用类的,所以这里边面临的问题是不好使,不能写类名啊,所以这块写类名是不合适的,那怎么办呢?我怎么样才能获取我当前对象的这个修改之后的名字呢?那好多学们说这样写啊,写成CH点内不就完了吗?好ch.name ch.six对不对?
13:02
ch.C然后呢,这里边写上ch.H好,大家看也没问题啊,程序运行走你好,没有问题,确实改了获取也对了,是不是上面写的啊,名字我们改成从好之后呢,获取的名字也是从好是不是,然后性别也是男年龄是吧?没有问题,确实可以这样写,但是大家回过头来再想一想,诶,我在这个生命类的时候啊,我在生命类的时候好像还没有实例化对象,哎,我哪知道人家对象叫什么名字。我咋知道这叫CH,是不是还是叫从浩子全拼音还是叫大傻瓜之类的?是不是我不知道,所以你在这写CH是不可能的。因为你并不知道用户未来会怎样实例化这个对象的名称是不是,所以这样写也不对,那怎么办呢?诶大家想一个问题啊。如果你在介绍自己的时候,你会怎么说呢?比如说我介绍我的时候,我就说啊,你好,是不是从浩叫从浩是不是从浩的年龄是18,从浩的什么是什么?这不是傻吗?我是不是应该说我的年,我的姓名叫从浩,我的年龄是18,我的姓别是哪呀?哎,也就是说如果有一个词能代替对象本身而写是什么呢?任何人都可以用的,是不是你叫你自己是我,我叫我自己一些是不是也是我,任何人称呼自己的时候都是用我啊,当然你要是要用这我也拦不住你是不是好?所以呢,这里边我们程序规范中特别给我们加了一个S参数。
14:35
特别给我们加算法,这个时候来给大家说一下SF到底是什么,你这块是不是希望对象本身啊,对不对,好打印看好了,在这里边我叫做打印,写错了打印。Surf的内容,打印surf参数的内容没问题吧,然后呢,加上啊,我们SF,也就是我会在这运行拓个方法的时候给你打印出来,然后呢,这里边儿其他的信息,我先给大家注释一下行不行,修改的信息也好啊,打印成员的信息也好啊,都注视角,然后呢,只给你留一个什么信息呢?就是刚创建对象的时候打印的对象程序运行一次。
15:20
好,程序报错了啊,程序报错了,说是这个不能转换成什么not,从号to string,看哪个地方没改过来是吧,从号哪个地方没没改过来。上面写的是第几行,这是三十十五行,37行。ch.talk。哎,我看哪说错了啊,类型错误,不能够只能够什么玩意儿字符串从号,只能把从号转换成字符串。哎,哪块选错了,没问题吧,右键运行。诶。打印。
16:01
Surf的参数内容加上SF哦,因为这块我们想把这个SF转换成一个字符串啊,所以这样的话,嗯,加一个FTR给大家转换一下吧,行不行。来,再一遍程序试着来走一个。好,程序出完了啊,程序出完了,也就是说我们现在把S也打印出来了,对不对?嗯,因为它和字符串连接的时候,需要把它转换成字符串啊呃,来大家来看一下这里边会有什么问题呢?首先talk方法被调用了,这个没什么好说的,这下面三句话就是talk方法被调用的对不对,但是调用talk的时候,我们在talk之前打印了一句话叫打印serve的内容,也就是输出这个信息,大家看到是不是在电脑上写的打印serve的内容是,诶这个信息也这实际上就是SF打印的一个结果,然后呢,在前面还有一句话,我不知道大家注意没住,你会发现这句话跟你SF打印的,跟你就是打印的这个S。内容是完全一样的。
17:02
看见了吗?包括后面ID标识都一样啊,之所以不之所以这里边是字符串,是因为我们加了一个字符串转换,其实你可以不转也没有关系啊,给大家看一下吧,行不行这样玩哈,来右键运行一遍。看见了没有,我们这里边出现了两个完全一样的气息。这两个完全一样的信息,大家来看程序就能看出来啊,我第一次打印是在这里边啊,叫做打印的,打印实例化的对象,打印实例化的对象啊,我可以把这句话给你放到我们print的前面去啊,因为print可以同时打印多个数据,不不连接也没关系啊,咱不连接的话,当多个数据再打印好不好?好那第一次的打印是不是找到了?来大家运行一次程序看一下啊,我们实例化的时候,这个对象是不是这个信息啊,算法在这摆着,是啊,不是S这个对象信息在这摆着,然后呢,我们第二次打印是在什么呢?下面就剩一行代码了嘛,第talk对不对?在电talk的时候,这里边也有一个打印SF的信息啊,这个S是什么时候打印的呢?我们是在啊类的方法中应该叫做对象啊对象的方法中打印。
18:13
好,右键运行一遍。大家就会发现,诶,在实例化的时候,打印和对象方法打印的时候是完全一样的,但是它是两个不同的变量啊,首先注意啊,在我们实例化的时候用的是CH变量,对不对?而我们在这个talk里边打印的是SF变量,它俩的信息一致就意味着一个问题,什么问题呢?SF它就是CH本身。因为他俩在什么呀,完全一致嘛,信息完全一致对不对,就是本身大说那是吗?你可不可以用ID帮我查一下,没问题,我连他的对象ID都把不是我连他的ID信息都给你查一下行不行,这个ID是CH,上面这个ID你看好了,我也给你打印出来,好吧,ID套上括号,我们写S。你看它的ID标识是不是一样的,程序运行一遍走,你大家会发现它的ID标识也一样,这就说明什么呀?SF其实就是当前的对象,看懂了吗?所以在这里边surf的作用就显示出来了,什么是surf呢?
19:17
首先请注意SF它只是一个参数啊,只是一个参数,这个参数虽然是看起来没什么用,但实际上它的作用很大,什么时候呢,在对象使用方法的时候,方法的时候。那为什么我们调用拓的时候不用传参哈,你想想,当当时学类的时候,访问方法要传插出来,你有self也传对不对?对象使用方法的时候,即使里边有一个so,你也不需要传单,是为什么呢?原因很简单,是因为当你使用对象调用方法的时候,当前对象啊会写错了,当前对象会作为什么呢?第一个参数的实参传入。
20:07
也就是说当你使用CH来调用talk方法的时候,他就把CH这个当前对象自动传给了SF来进行接收,也就是说形态SF接收的值就是你的对象本身,当打杠A是不是也打印了这个SF和CH完全一样嘛,所以就是对象本身看到了吗?这就是我们的S的一个非常重要的信息,也就是说S这个参数自动加,就是因为为了什么呀,接收当前对象,当然大家也会说他接收当前对象到底有什么用呢?好,大家来看我们上次在这里边是不是写的CH点内嘛,是不是,但你要实六化对象不叫CH不就拉倒了吗?所以你看好了,我怎么做呢?我把这里边的对象名称全部替换成SF就可以了,因为大家已经知道SF就是当前对象吗?再次运行程序看好了。好,我的名字是同号,我的性别是男,我的年龄是18,没问题,你在上面随便改,把年龄改成38。
21:06
把性别改成女好再遇,再次运行程序,看见了没有,我的性别,性别是我的名字是同号,我的性别是女,我的年龄是38,看见了没有,你的信息会是吗?跟随着数据一起改变的,也就说实现了我们的动态数据加载对不对?而且不单单是这样哈,这毕竟只是实例化的一个对象,如果我看好了,再次实例化一个同号的一个对象啊,一个对象就是再做一个,再做一个同号对象做两个,是不是我非得叫一个吗?啊,你上次叫什么呀?你上次对象叫CH啊,我这次就不叫CH了,看好了我这次叫什么呢?叫做呃。呃,好男人行不行啊,等约啊,从浩用这个类实例化的对象。好,那这个时候大家请注意啊,我实际上是又找到领先的对象,对不对,好,我没关系,我再次调用这个聊天功能。
22:08
也说两个都叫从号,但这俩呢?是不是都调用聊天功能,是好男人点talk?操上框,因为对象调用的时候,即使拓方法里边有S,我们也不需要为他传,因为什么呀,当前对象会把自己传给self接收对不对?好,大家看好了,我运行程序走你。看见了吗?两次完全没有问题,第一次我是苏浩,性别女,然后信息38,第二次的时候依然是啊,我是苏浩,性别女,年龄38。即使他是两个不同的对象,一个对象叫CH嘛,一个对象叫好男人,对不对?是不是看见了没有,也就说用surf其实就是一个代词啊,一个代词。你介绍自己的时候用我,我介绍自己的时候也用我,咱俩是完全不同两个对象啊,是不是,但是都用我这个代词来代表自己本身,Surf就是这个功能,明白了吧,所以S啊,Sef sf相当于。
23:08
我们语言中的代词写错了啊,代词。叫表示什么?对象本身表示当前对象本身。这就是surf作用,那这个时候大家会有一个疑问哈,为什么要写成surf对不对?Surf英文单词是自己的意思,就是我吗?就是我的意思,当然啊,在其他的语言中可能不会用self啊,其他的语言中会用,其他的其他语言中啊也有使用什么呢this的啊,也有使用this的,像PP啊,是不是这样的语言里边他可能就比较使用this,其实JS里边也可以使用这张词也可以使用JS,也可以使用this啊,包括C加C下,包括C加加C下都可以使用this来使用啊,那其实this也是和S一样的功能,作为一个代词,当然我们S里边是没有的啊,注意看了,里边就是用S啊。
24:06
没有用this的,很多时候我用this行不行啊,倒也行啊,倒也行,很多时候我改成this行不行啊,嘿嘿,告诉你,还真行,还真行。当然这个我们一会儿再讨论好不好,那关于这一点问题,大家理解了吗?我们为什么在方法中会自动带一个self,它的作用是为了接收什么呀?对象本身,对象访问这个方法就会把对象自动传递来,对不对?然后呢,你就可以通过这个S,也是当前对象找到对象的所有信息,你比如说呢,给大家举个小例子啊,好吧,把这个注释教,把上面这个注释教啊。上面这个主角。好,第一部分结束,来看一下下一部分什么内容呢?也就是我们serve它除了接触对象之外,它到底有什么作用,你看啊,我这个有个习惯,但什么习惯呢?我喜欢我会唱歌是不是?然后呢,我也爱洗澡,但是我洗澡的时候我更喜欢唱歌,说我在洗澡的时候我想唱个歌,不是看好了我想洗澡的时候唱歌啊。
25:06
洗澡的时候唱歌废话,洗澡的时候当然是我自己唱了,是不是,所以在这里边,那我下面实例化对象啊实例化。实例化对象,好,那在这里边啊,我们叫,呃,叫做CH,还叫总CH好不好,叫CH好不好啊,行,就这样吧。CH等于从号这个类实例化一个对象,好,有了对象之后调用洗澡方法啊调用。洗澡方法,那我在这里干什么事呢?直接通过点什么呀,Wash wash。能不能调用出洗澡呢?完全没有问题,走,你看好了,是不是沐浴露和小澡澡水温刚刚好,是不是调用了洗澡袜,但是我说了,我洗澡的时候喜欢唱歌,那唱歌的功能咱是不是已经有了?很多说啊,那有了,把整个这个,把这个信息复制出一份,哼,你想的太简单了,如果这样做的话还好了,确实没问题,你会发现洗澡之前确实唱歌了,但是你想想我们现在只是一行代码,对不对?那如果是十行,100行,1000行呢,你还打算复制进来吗?而且在计算机式过程当中,非常讲究一个复用率的问题,就这个功能如果可以使用,我没必要写两次,那我唱歌功能既然有了,我为什么还要再复制它的信息呢?我能不能在洗澡的时候调用一下唱歌的功能,是不是就可以了?
26:32
所以我在洗澡的时候唱歌,我希望干什么事呢?调用自己啊,调用自己写错了,调用自己的唱歌功能,那我自己不就是个对象吗?我想调用自己的唱歌功能怎么做呢?首先。我电我自己是谁,我自己叫CH对不对。但是用CH访问wash方法的时候,会把CH对象本身自动传到SF里边,也就是SF就是我。
27:02
那我想反问自己的唱歌方法,是不是直接写上s.sing就可以了?也就是说这句话就是我自己在唱歌,因为SF就是当前对象本身啊,然后sing啊,不就是调用自己唱歌吗?然后由于是对象访问的thing,所以会把SF再次传这里边来,所以你会发现这依然可以使用。看见了吗?看见没有,我洗澡的时候又能唱歌又能洗澡,对不对?哎,这时候surf的一个作用就体现出来了,Surf的作用是什么呢?S的作用啊的作用。作用是连接整个对象的所有信息。所有信息,也就是说起到一个桥梁作用啊,桥梁的作用,只要是当前的方法当中有S,我就可以访问当前对象的所有其他的成员。
28:02
明白了吗?那self有了就表示啊,有对象了,那对象你想访问任何成员无就无非就是s.s.S点是不是就可以了啊,咱刚刚在聊天里边,咱用了它的成员属性name six a,是不是在洗澡的时候也用到它的方法吸引这样的方法,是不是只要有S,我可以在对象里边任意的遨游啊,是不是?所以S起到一个桥梁作用,把整个对象给连接到了一起去。所以这是SF非常重要的一个使用方式啊,一个作用好了,来接着看看下一个问题啊,我们SF这里边,它究竟可不可以用别的单词来代替呢?答案是可以的,答案是可以的,所以把这次实验再次注释给大家,试一下使用其他的单词来代替算参数啊。来下面要测试,看好了叫测试使用,其他写错了啊叫使用。
29:03
其他单词代替。代替我们的SF参数啊,有没有问题,首先告诉你答案是可以的啊,那在这里边老规矩,实例化对象呗,行不行,CH等于同号这个类它上括号,然后呢,看好了,我们在这里边我也不改它的方法,我们新加一个方法行不行啊,我们新加一个方法,比如说加一个吃饭的方法行不行,吃饭的方法来EF叫eat。然后呢,Print。我就写上干什么事的,我最我最喜欢吃烤。羊腿。好。写完了,看见没有,然后正常情况下我对象已经有了,我调用吃饭方法。写错了啊,叫调用吃饭方法。好,没有问题,对象已经现成的,不就CH吗?方法叫it嘛,对不对,好走一个程序运行。
30:01
没问题吧,我最喜欢吃烤羊腿,因为CH是对象调用it的时候,会把当前对象自动传入到it的SF当中接收,对不对,并且怎么样,并且进行一个操作,如果你希望使用当前对象的一些信息,也没有问题,是可以输出的,比如说我的体重,写一下我的体重行不行,假如说我的体重是我的体,写么写成字串啊。叫我的体重是多少呢?我们上面体重这一块是一个字符串,可以连接一下好吧。然后体重是加上surf selff sf.wait好。程序运行一遍走,你看到没有,我的体是180几,我最喜欢吃烤羊腿,是不是我们刚刚调用这个吃饭方法所发生的情况,或者运行的代码对不对?好反过来我们说了这个SF可以改呀,不叫SF了,是不是叫什么呢N。叫俺或者叫我震啊,不是很多人称自己为叫朕吗?行,我就给你改成朕来程序运行一下,你再来看一下。
31:08
看到没有,程序没有任何问题,这个阵依然接收了我们的对象传入。然后在使用的时候依然可以使用什么,依然可以使用这个正点white来进行访问它的体重,或者访问我的体重对不对,这些都是没有问题的,这就说明self这个单词啊,并不是说非得用self可以使用其他单词代替的啊。Surf,他注意不是关键字啊,其他的语言中用this this是关键字,是不可以改的啊,但是在P中SF它不是关键字,只是一个参数变量而已,参数变量名而已啊,可以使用其他代替,可以使用其他单词代替。代替。但是。禁止代替啊。
32:00
禁止代替。作为初学者而言,你本来就不应该用其他单词代替,因为你可能对于整个S的运行机制还没有了完全了解透彻,所以不要这样做。而且如果你用其他单词代替,比如说你真的写了一个震啊代替了的话,你可能是明白了,但其他人一看,他是懵的。因为大家约定俗称使用SF,而不会使用什么呀,其他的单词来代替,所以这是约定俗称的一个什么呀,约定俗称的一种想法,明白了吗?好了,这个大家千万要注意一下啊。另外的话,很多学弟就有一问题,说我写方法能不能不带SF呀?很多说那你可得写SF,我不写SF会不会报错呀?可以看好了,下面要给大家显是没有SF的参数,没有SF的方法啊,没有SF参数的方法是没问题的EF。我们加一个什么呢?吃喝是不是抽烟吧,抽smoking SM吗?And smoking行不行,抽烟我这次就不要self了,有没有问题呢?好,Print框框啊。
33:10
抽抽小烟是不是叫饭后一支烟是不是?赛过活神仙啊。赛过活神仙啊啊,不过友情提醒,吸烟有害健康。所以大家尽量不要吸烟哈,我不是想教会朋友们,但是大家尽量不要吸烟,很多时候没有S的方法会不会有问题啊?你看波浪现在出来了,首先告诉你,没有S的方法如果写出来的话,程序并不会认为它有问题。程序并不会认为它有问题,来程序运行一遍,没有语法错误,看见没有,他们说啊,那这样的话,我能不能调用这个smoking方法呀?好来下面看一下smoking方法啊,叫做没有没有S参数的调用啊的方法的方法的使用。
34:04
在这里边,首先你要注意,如果你实例化的对象。那么很抱歉的告诉你,你无法通过对象来调用smoking。你这样调用会报错的程序运行变走你会报错的,原因很简单,他说smoking什么呀,他没有行参,但是你却给了一个食餐。也就是说你只要用对象调方法,咱说了对象会把自己自动传到这个方法里面去,对不对,但是你smoking在定义的时候并没有参数来接收啊,所以语法上会报错,也就意味着。无法通过对象啊,无法通过对象调用,写错了叫调用。没有什么呀,调用没有接收对象参数的方法,你这里边压根的方法啊方法,你这里边压根就没给人安排一个成这个行参来接受对象,所以是没法访问的,当然很多说那这个玩意是不是就不能用了,也不是,如果你没有对象的话,就证明对象不能访问,那是谁可以啊类可以访问,所以我们可以这样来做同号。
35:20
点smoking s smoking程序直接运行是不会报错的,不过你得把上面注释了啊。来右键运行一遍。看见没有放好一点烟塞过火神仙是不是是没有问题的,也就是说通过类是可以访问的啊,通过类。可以,写错了讲可以。访问没有接收对象参数的方法,这样是可以的。当然回到我们最开始的那句话,我们很少使用类直接访问方法,一般情况下都是通过对象来访问的,虽然这种方法写出来不会报错,但是我们很少用。而且呢,由于有S和没有S,这个方法可以进行一个分类。
36:13
什么分类呢?来看好了。这个分类目前是这么分的,叫做具有叫做有叫做方法中啊有。有。用于不是有哈,叫具有吧,写上具有。接收对象的参数啊,一般是S嘛,对不对,S这种方法,这种方法我们有一个名称叫什么呢?叫做非绑定类的方法啊,叫做非绑定类的方法,也就说这个东西不是说非得用类来它访问,用别的可以访问是不是啊非绑定类的方法。啊,只要它有S用类也可以访问,用对象一个访问,我们之前是不是都在学基本操作时给大家介绍过是不是,但是呢,来还有方法中啊叫没有。
37:09
接收对象的参数,这个参数还是这句话,一般是这啊。Surf。那么这个方法叫做什么呢?绑定类的方法原因很简单,因为当你的方法中没有serve的时候,对象传进去没人接收,会报语法错误的是不是?所以这个时候只能通过类本身来访问,所以这种方法叫做绑定类的方法,看见了吧,绑定类的方法啊,这是我们方法的分类。分类?当然请注意,这不是完整的分类啊,这只是暂时的分类。暂时的其实也很好理解啊,你看绑定类,绑定类就是跟类拼绑到一起了,只能使用类来访问嘛,对不对,然后呢,非绑定类那不是绑定的,那谁爱访问谁访问,那也可以,对象也可以嘛,对不对,就这个东西啊好,但是大家注意看好了,我说的我说的是有没有接受对象的参数,并没有说他有参数没参数的问题啊,它有参数没参数并不能决定它什么呀。
38:15
到底是绑定的还是非绑定的,很多说这个我不太理解呀,浩哥到底啥意思呀?很简单啊,如果说你在这里边啊,定义了一个新的方法DF,比如说第一个哭的方法吧,行不行,那在这个哭的方法里面还真写SF了,但是你定义的时候,咱说了这个SF它不是固定名称的,叫什么名字都可以,是不是你反而用这个SF想来接收一个什么呢?想来接收一个数据。啊,下来介绍一个数据。比如说啊,我哭了几次,是不是我哭了几次,那这个几次咱用什么呢?S来代替的啊,算来代替好,我就直接用字符串连接了,好吧,我就不给大家写什么方便的操作了啊。好,然后连接一下好。
39:02
那我哭了几次是不是啊,我哭了几次,那你想调用这个方法的时候,你看啊,这个S是干嘛用的。你在设计的时候,这个SF是不是用来接收数字的,是不是SF设计为接收次数的一个参数?那这个时候你就要考虑到哦,这到底是一个。接触对象呢,还是接还是不是接受对象的呢,我们设计的时候就是用来接受次数的呀,所以说这个SF虽然写在这里边,但是它属于什么呀,它属于绑定类的方法。因为你这个serve设计的时候不是用来接收对象的,对不对,而是用来接收其他数据的,那它依然叫做绑定类的方法。所以我们要想看出一个类的的方法啊,或者一个对象方法是不是绑定的,是不是非绑定的,不能从结构上来看。好多说有yourself就是绑,就是非绑定的,也不是这有yourself的它就非绑定的,看到没有,它就是非绑定类的方法啊,不不,它就是绑定类的方法,绑定类的方法,因为这个S它接受的不是对象,而是一个数字,是不是它这就绑定类方法,然后你上面看这个啊,这个没有S,而是写了一个正,但是大家设计的时候知道这个阵是不是也是为了接触对象本身的,所以它就是一个非绑定类的方法。
40:27
看懂了吗?所以绑定还是非绑定,不要从有没有self上来看,而是要从能不能接受对象来看啊,能接受对象咱就非绑定的,不能接触对象只能使用类的,那咱就是绑定类的方法,OK,这样一个的话,关于我们F的信息就为大家讲解完了,整个SF过程当中,由于SF的可变性非常大啊,可以用SF,可以不用SF,对不对,S也可以接受对象,也可以接受不是对象信息,所以整个过程非常的繁琐加复杂。
41:01
对于初学者来说,一定要一步一步稳抓稳打的实验好,然后慢慢的深入了解,我们会在后边每次使用的时候给大家再次进行强调,好不好?好了,感谢大家收看本小节内容,本小节中是非常重要的SF的应用,那么本小节到此此结束啊,感谢大家收看,再见。
我来说两句