00:00
大家好,我是海波老师,咱们继续给大家讲解Java面向对象的相关语法,之前啊,咱们把那个类啊属性咱们都说了一下,那么接下来呢,咱们把这个方法咱们说一下,我这里呢,我来拷贝一下。然后呢,把这个五呢,我们改成六,把这个呢,我们改成叫method。好了,然后呢,我们点击OK,点击OK以后,把这个名称我们替换一下,然后把这个地方我们全都不要它,那这个呢,咱们也不要了,把这个名字我们改成零六就可以了,然后这个地方的属性呢,我们改成叫方法好。那么所谓的方法呀,咱们前面提到了,就是对象的行为和功能,对吧?那么基本的声明语法方式呢,我们说一下更名的语法,这个语法呢,是我们VO,然后后面我们的方法名称记住了,这个方法名称表述的是标识符,它有遵循标识符的命名规则,后面跟着我们的小括号,然后呢,再跟一个大括号,大括号里面就是我们的逻辑代码。这是一个最基本的方法的声明方式,我们完整的语法呢,咱们在后面呢,会依次讲到,那么接下来呢,咱们说一下方法的调用方式。
01:05
方法的调用方式。这里我们写上对象,然后点我们写上方法名,然后后面跟着一个我们的小括号,记住同学们,我们声明的时候前面有个小括号,我们这里呢,就需要把小括号给它加上,不要忘记了啊。有的同学不太明白,说方法和属性是怎么得到的,说老师你看你之前提到过,我们可以从多个对象中提炼出共同性的特征和行为,然后呢,我们的特征呢,作为类的属性声明,而我的行为呢,就作为类的方法声明啊。听着很简单,但是问题在于这个提炼的过程是如何做到的?这个就需要和大家解释一下了,确实呀,刚刚接触这个面向对象的编程思想时呀,想要从众多对象中快速提炼出共同性的内容,还是需要一些技巧的,所以我们这里简单的和大家说一下我们的提炼过程啊,完全可以根据语言描述中的词性来分析什么意思啊,就是根据描述性的文字是名词还是动词进行简单的区分,那比如啊,咱们来说一下只用什么呢?用户账号和密码它进行登录。
02:13
我想要实现这样的一个场景,那么这里的用户呢,账号啊,还有密码,大家会发现他们就是我们所谓的名词,大家看一下来,我们说一下,这里就会有名词,这个名词呢就是用户。还有账号。还有密码,没错吧,但是呢,这里还有动词呢,我们说一下这里是我们的动词,这里所谓的动词呢,就是我们的登录了,诶,它就是我们的动词,如果你能把这些东西分析出来的话,那就好办了,为什么?那是因为我们这里的用户啊,他是一个独立性的名词。对吧,可以独立使用的嘛,那么我们就可以把它抽取为类,所以我们这里的U06诶就可以代表是用户的意思,而这里的账号和密码呢,它不是独立的,它是纯属于我们用户的,所以它是用户的两个特征,那么虽然说也是名词,但是就不能声明为类了,它需要作为我们用户的属性来声明使用,所以我在这个地方我就写上它叫account。
03:10
还有一个呢,我们选它咱们叫password对吧,你这样的话就是我们的两个属性了,好属性声明完了以后,但是大家注意啊,我们这里呢,不要给他做初始化操作,为什么?因为每一个具体的用户的账号和密码都可能不一样,所以我们不能在类中啊,对这两个属性直接赋值,而是使用Java虚拟机的默认初始化。还有就是刚才说的这个动词,我们就要登录了,这个登录呢,是用户在登录,所以这个登录的行为呢,它重属于我们的用户,那么我们就可以把这个登录啊作为我们用户的方法来声明,它的声明方式呢,就是word,然后呢,方法名咱们叫log in,然后写个括号,然后呢写个大括号,里面我们就可以写上我们的逻辑代码了,我写个打印。咱们叫做用户登录。好了,那么你这么写完了以后,我们当前这个方法不也就准备好了吗?对不对?你看看按照这个思路来进行分析和提炼的话,是不是就简单了很多呢?但是啊,不要忘记咱们这里的功能啊,相对来说是比较简单的,所以这么分析没有问题,但是如果功能再复杂一些的话,我们就需要考虑其他的问题了,比如啊,咱们给用户再增加一个注册的方法来。
04:21
咱们叫word,我写上它叫resist,然后呢,写上它这个方法呢,我们就称之为叫注册,所以呢,我们把这个拷贝一下,拷贝以后我放到这里,我们想它叫用户注册,把这个去掉。好了,写完了,那么现在呢,我们的用户里面就有两个方法了,一个是注册,一个就是登录,从逻辑关系上来讲的话,应该是用户先注册,然后呢,我注册成功以后再登录,对吗?你想想吧,如果你注册失败了,你就没法登录了,对吗?诶,所以必须要成功之后我再登录。那么从刚才的描述当中啊,大家有没有注意到我们这里的注册功能其实应该会对登录的功能有影响,对吗?也就是说注册的方法我必须要知道一个结果,根据这个结果来决定我是否进行登录,没错吧?
05:09
可我们从哪里才能知道这个结果呢?A就是从这个地方就是这个的地方,前面啊,咱们给大家讲方法的声明的时候是这样的,就是声明的语法中是word写上一个方法名,然后后面是小括号,再加上我们的逻辑代码,没问题吧,但是我们没有讲这个word的用途,其实啊,它就表示这个方法所产生的结果,也就是说VO其实是一种结果。啊,这里的word它表示方法的结果,诶老师,为什么我们之前都没有提到这件事情呢?那是因为我们之前的方法都是不需要结果的,只是在我们的方法的内部,我们打印了一些字符串的信息,并没有产生什么结果,所以这个地方呢,我们都使用的是这个叫的关键字,而这个VO的关键字呢,在英文中就表示没有空的,哎,这个意思,所以啊,咱们这个VO呢,它表示就是没有结果。
06:02
对吧,不会产生任何结果,就是这个意思很直白啊,就是告诉你我这个方法没有任何结果,可是我们现在就不行了呀,为什么?因为我们现在有结果了呀,我就需要根据它的结果来决定这个方法能不能使用,不就是这个道理吗?对不对?那怎么办?很简单,这个时候你有结果了不是吗?你就不能够在这个地方再用我们的VO,那我们这里写什么呢?诶写什么就要看看咱们这个方法会产生什么样的结果了。咱们的注册功能啊,分两种情况,一个我们叫注册成功,一个叫注册失败,那么我们这个方法的内部呢,叫产生一个结果,那这个结果当中啊,我们就可以呢,用一个布尔类型的值,我们写上一个true,这个true呢就表示我们的成功,对吧?注册成功或者呢,我们写个false就表示我们的注册失败,这个都是可以的,那么这个true和false的结果呀,它是我们方法内部的处理结果,但是如果方法的外部需要用到这个结果的话,这就需要在我们这里呢,使用一个关键字叫做return。
07:02
这个关键字呢,就可以将咱们的这个结果传递到我们方法的外部了,我们将这个传递的过程呢,我们称之为叫返回,恰恰呢,和这个单词的含义是吻合的,我们称之为叫返回结果,对吧?那么我这里是false,就意味着我返回结果是false,不就是这个意思吗?哎,我这里加个分号啊,就是这样的,那么你这么写完以后,你会发现,诶,我们这有冲突了,什么冲突呢?我们这写是没问题的,但是我们前面有一个声明的过程,他告诉你,你当前的方法是没有结果的,但是你的代码中又有结果,你们两个产生了歧义。诶,老师,那我该怎么办?我说过了,你既然已经知道有结果了,那么你这里就不能使用word了,那不使用word我写什么呢?我告诉大家,就写你返回结果的类型就行了,咱们这里不是返回false吗?OK,我这里写上它叫布尔类型,你这么写就可以了,哎,老师呀,那为什么不把这个false我直接写在这儿呢?其实很简单,因为啊,只有在执行之后,我们才知道具体的结果,但是在声明的时候呢,还没有执行呢,所以不可能知道你的执行结果是true还是false,对吗?这个同学们能不能懂?还有一个就是你的方法,可能返回的结果是需要提前告诉别人的,这样的话别人才会决定是否调用你的方法,对吗?所以我们这里啊,是返回数据的类型,而不是具体的值,还没执行的嘛,你还没有结果产生的吗?所以这个时候我们只能写类型就可以了,好了,这个咱们说完了之后,咱们回过头来把咱们的这个语法呢,咱们稍微的改善一下来,咱们叫补充语法。
08:36
那么这里的word呢,我们可以写也可以不写,那么要看实际的返回情况,那么它叫方法的返回值类型。然后呢,我加上一个括号,你可以写个word,也可以不写这个,我加个中国号吧。啊,表示的是你可以用也可以不用,对吧,如果你用WHY,那么你这就不要写了,如果你要写别的,这就不要用WHY,两个选一个就行了,所以我这里也加上一个中括号吧。
09:01
诶,给它加上行,同学们,这个呢,咱们给大家解释一下,就是说我们在方法名的前面这个地方,它会有一个返回值类型,表示你当前方法的执行结果,但是呢,如果你没有结果的话,给他一个word就可以了,好了,那咱们程序该怎么去做呢?很简单,我这里不是告诉你了吗?有一个叫register吗?我把这个force呢,我改成true就可以了,我改完了以后呢,我在这边就写上它,咱们叫U06,好,我们写成U,它等于new,咱们的U写完了以后,诶我们就改成U06啊来写完了以后呢,我们写成它叫U点,有个叫registersist,好,这个时候同学们记住了,它是有结果的,我要用一个变量来接收它的结果,所以点VAR回车,回车以后,你的执行结果就被我用一个变量给他接收到了,你接收到以后,那么这个时候我判断一下叫做if。如果你当前的这个注册的结果,我叫哎,Register,把这个拷贝拷贝过来以后,如果等于true。
10:06
他如果为处那么没问题了,那么说明我们注册成功了,所以我们这里说一下来写上它,咱们叫注册成功,好,那么注册成功不就可以开始去登录了吗?但是还有另外一种情况,咱们叫else,咱们写上他咱们拷贝。拷贝以后我们就写上叫注册失败。好了,写完了以后,如果你成功了,那么好,我们这时候U点,我们叫做log in,同学们不要忘记你的登录也可能成功,也可能失败,对不对,我们也可以跟刚才是完全一样的,把这个呢改成我们不玩类型的,告诉你我们登录啊,可能返回一个true,也可能返回一个false,不确定,那所以呢,我们这里呢,就蓝A写上它,咱们就return或者false。诶,这么写就可以了啊好了呢,我们回过头来,我们这里呢,就可以把它的结果咱们拿到来VR回车,回车以后我们的login也是有结果的,咱们叫break,然后呢,我们就写上它,我们叫做if括号,然后呢,我们叫log in result,如果它为true,说明咱们登录成功了,所以放过来。
11:08
咱们叫登录成功,那如果我们L呢,诶写上它行了,把这个我们拷贝一下,拷贝完成以后,这里写上它,咱们叫做登录失败。诶,行了,同学们,我现在呢,把这个代码呢,稍微补全了,咱们来运行一下,看一看咱们运行,运行以后咱们看结果。你会发现我们用户注册成功对吧?然后呢,我们登录失败,为什么?因为咱们的注册呀,咱们在这地方返回的是个处,那么他返回处的话,肯定这个条件是成立的,没问题吧,同学们对吧?好,然后呢,我们去执行登录,但登录里面我们给了个false,那么所以呢,我们的结果就是个false,那么这个判断就不成立,不成立的话不就是登录失败吗。好,同学们,我们把这个方法的返回值就给大家介绍到这里。
我来说两句