00:00
好,同学们,我们往下继续讲解,接着上次课的内容,内容呢,我们继续讲解,好,往下先走一下,我们到哪里了呢?我们到这了方法,哎,昨天讲了,呃,内存布局,我们讲一下方法。那么开了的方法就是函数啊,就说当我们这一个呃这段这段代码写在一个呃方法体里面,又没有函数式编程这个特性呢,方法和函数本质呃是一个意思,所以说你看我在这写的很清晰,我说什么呀?呃声明这方法就是函数,在这里声明的规则请参考函数式编程的函数声明就一模一样。你函数是怎么声明的,或者是定义的注意事项,那么你这个方法的声明方式和注意事项呢,也是完全一样。这个我就不太多说,那这里呢,我们举一个小小的案例吧,比如说我们编写给这个cat类添加一个calculator,就是计算的方法,统计两个数的和,再调用一次,好,这个特简单,老师呢就怎么样,直接粘贴过来就行了,好吧,没,没有难度的地方,我们就尽量的快一点。
01:14
好,同学们,那我们现在还是第六一个章节,我建一个新包,叫方法a method method。好的,那么我们写一个小小的案例,对小小的案例,Message me nd DEMO a DEMO,零幺。来整一个啊,同学们整一个。那写个小案例测试一下就完事。诶,这段代码我相信同学们都看懂哈,都看懂,那么这是一个dog里面我定义了一个私有的属性叫salary,就是薪水,然后呢,它有个实物,实物呢,我这两个都是用的默认的值,默认的值给他的啊再说一遍,如果你用这个下划线默认的话呢,这前面这个类型一定不能省略啊,你要省略了它会报错。
02:03
报错的原因?是因为你他不知道你是什么类型,它无法给你默认值对不对,好,这个要注意这写的开,这个就是一个方法,你看这个方法呢,其实跟我们函数定义完全是一样的,对吧?好,那么现在我就用一下就可以了,使用一把。啊,使用一把。二使用一把进来。进去吧,进去吧,进去。好,我们来使用一下啊,我们来使用一下,那么呃,使用的方式跟我们原先的这个呃,Java是一样的,就do一下到do。点我们的这个calculator传入十,传入一个20,这个结果呢,自然也就返回来了,那么我们把这个结果呢,打印一下就OK了。好,这个方式执行结果应该就等于30。
03:02
好的,这个就是我们的方法,好写完了。好,方法呢,我们就这个案例就说到这儿,下面我们看方法有没有需要注意的地方哈,还有呃,方法的调用机制,方法的调用机制呢,和这个函数调用机制完全一样啊,完全一样,它的这个调用的这个机制呢,我们这把它再回顾一下就可以了。啊,把它再回顾一下就可以了,好,当我们开了开始执行方法的时候,先在战区开辟一个命战,就是命战开辟了,然后呢,命战是最后销毁的,就是整个程序退出命战才会销毁,然后SKY程序在执行到一个方法时呢,总会开辟一个新的战啊我们可以认为是个方法站里面呢,就有我们的相应的这些数据,每个站的是独立的,空间变量是独立的,相互不受影响,但是有一个情况可能会呃不一样,就是说如果是引用类型。如果你是引用类型的话呢,呃,它是可以相互改变的啊,引用类型好,引用类型除外是吧,引用类型引用类型除外。
04:07
除外,因为引用,引用类型呢,我在这个一个站里面可以改变你这个另外一个站里面的东西,它是引用,引用到那个堆里面去了嘛,好,那么方法执行完毕过后呢,方法开辟的站呢,我们可以认为就是被回收了,这句话呢,要这样理解啊,其实有同学曾经问过说老师,那你这个方法,呃,方法创建以后,那个站是真的被回收了呢,还是说只是用不到了。哎,大家你们认认为是怎么回事呢?就是只是用不到了而已,如果同学们学过这个站的那个底层的原理,其实呃,这个站的数据结构有一个站顶。这个暂停是一个指,类似于一个指针或者一个索引,它在不停的移动,当你这个往上走的,这个暂停的指针就会往上走,当你用完了过后,它会往下来,所以说他这个方法开辟的站呢,我们说被回收也可以理解成就是个站停,站停往下移动了,你用使用不到了,等到你再开辟一个站呢,它会把原先那个里面的上到的数据给你重新,怎么样重新给你覆盖。
05:12
啊,重新给你覆盖了,就这意思,相当于是覆盖啊,真正去轻轻销毁这个工作呢,不一定会去做啊,大家这么理解就行了啊好,我把这个方法的调用机制也就说了一下。啊,那么现在呢,我们来对方法做一点小小的练习题,我这里呃,有大概有这么六个题,六个题是成员方法的啊,注意,那么我这里给大家演示,演示两个,演示两,演示三个,同学们呢,另外几个呃,同学们课后再去做,现在也不需要做,都很简单,只是给大家过一下,我们先看第一个类,他说要求写一个message ex ec这个类要求写一个方法,方法不需要参数,在方法中打印一个十乘以八的句型。
06:02
然后在命方法中调用,这个对我来说应该是非常简单的,我说了啊,东西都不难。我们学的这基本语法谈不上什么难度啊,谈不上什么难度,但是呢,呃,就是一个熟悉,为什么大家说程序员要熟练呢,熟练功能嘛,对吧,你用久了都熟练了。好的,那老师呢,给大家写上这么一些个小案例,我们来把这个语法熟悉一下就OK了。好,这是我们的要求,那开始写类,首先来一个class。好,我把这个类写到这里来。然后呢,他说编写一个方法不需要参数,打印十乘以八的一个句型太容易了哈,那么就D。那么就print REC对吧,打印个,而且他说没有参数,那没有参数的话直接打印,那么就负循环就完事了,那I走。呃,那么就呃就0ON t,我们用一个用一下on t啊,一直没有用,好久没有用了十啊,因为他没有参数,我只能把这个写死了,然后再来一个。
07:09
截走零,On until UN until on until多少呢?就是八,哎,就是八。然后这个有了以后呢,我们就来把它打印出来是个矩形嘛,矩形的话,我就这先不去换行,就打多少个星号出来呢,就是。呃,十乘以八的话哦,这个还不需要用到双层负循环呢,是吧,不需要用到双层负循环,因为它这个八是固定的啊,固定的那就没有,那就更简单了,连这个都不要啊,连这个都不要。呃,连这个都不要。呃,还还还得要哈,还得要还得要,还确实是要要啊,我说我说错了,好行,这样就对了,这样就对了,然后好这样写完了以后呢,我们把它再换一行就OK了,是吧,零第一次来,然后从这个零到八打印八个星号啊,这样就行了,特简单,那我们用一下。
08:11
Method就写个M等于六,一个method的一个实例,对吧,然后呢,我们调用它的print,我们来运行一下。跑一个跑完过后呢,我们发现这个十行八列的一个句型就出来,特简单好做完这个第一个题过后呢,我们再来做第二个题,我们来看第二题有什么变化没有,第二个题的要求是这样子的啊,他说修改写过来,先修改上一个程序,编写一个方法,方法不需要参数,计算矩形的面积,并将其作为方法返回值。在面方中调用接收的这个面积要保留小数点,两位好同学们看,这里面有个问题,他说方法不需要参数,但是又要又要我们计算矩形的面积,大家想。
09:06
面积肯定有长和宽吗?那这两个属性大家想按他的设计应该做成什么呢?是不是要做成属性了呀,因为你这个你他又说不需要参数,但是又要计算这个具体面积,那你肯定得有两个参数来来做呀。要要变化,所以说通过这个分析呢,我们应该分析出来一个东西,分析出来什么呢?就是我们这个矩形的这个长宽,长和宽需要需要设计成什么呢?属性,哎,就这一点你要分析出来。啊,你要输出来这个东西好,那就简单了,那同学们呢,那我们来玩一把,首先这两个呢,应该是变化,这两个是变化的,用VR,那首先我们来说它的一个长和宽那。好,嗯,初始化给他一个东西吧,叫0.0完事,那么再给他一个宽度。
10:02
啊,长和宽也是0.0写完了,那写完以后呢,这两个是属性,这两个是属性好,然后我在这里写一个方法,哎,就是干什么呢,计算计算这个面积的方法。对不对,好,这个对我们来说特别的简单,我就DF啊计算面积呢,我就直接就是叫做呃,叫做这个计算面积二,然后没有形参。就直接返回一个double类型,根据人家的要求来做啊,因为人家说要把这个计算的结果返回去嘛,那肯定有double类型,那double类型怎么做呢?就直接this.n乘以Z点宽度,这还不对,因为人家要求保留小数点在两位,因此呢,我们要格式化进行一个返回。格式化进行一个返回,那整个你要将其包包这个包起来,点form my,对,然后呢,咱们写上百分号,点2F啊这个就OK了,就整个这个结果呢。
11:07
不对呀。啊,他说他说是一个,哦对了,大家看啊,整个这个返回就变成一个字符串了,是吧?啊返回字符串,那就这样子,干脆我们不要写这个,我们直接让它类型推断是不是就可以了。是吧,就类型推断嘛,但如果你一定要说,诶老师我就要返回这个double也是可以的,再怎么样,再double是不是也是可以的呀,说我就要返回double补,我不管那么多,你别给我返回字符串可以啊,在因为你这个已经保留小数点两位,再double补那也没毛病,好,我们来玩一把,我们来玩一把。好同学们,我们我们玩一把啊,首先呢,M走,我们把它的宽度设置出来,比如说是2.1,好把它的长度给设置出来,比如说是3.434,然后呢,我们直接输出它的结果就是M点叫什么呢?L。
12:03
就可以了,这是宽和长设置好了,我们执行一下,就是面积为。面积等于多少呢?好,加起来完事,好,同学们,我们运行一下。我们预想,那么我们看到这个结果呢,跟我们想的应该就是一样的了啊一样的OK,没毛病,好,这就是老师讲的这么两个。呃,练习题,那么这两个练习题讲完了,我们再讲一个啊,我们再讲一个这个。我们再讲一个吧。再讲再讲一个这个题就是判断一个数是奇数还是偶数啊,判断一个奇数还是偶数,然后呢,同学们课堂上课堂上写啊,干脆这样子。呃,第三题和第四题呢,同学们,课堂上拿上五分钟马上念一下,好吧,念一下我们接着往下继续走,好这两个题留给大家,让大家现在马上做第三题和第四题。
13:00
我们的练习呢,就先到这里啊,就是调节一下好,大家呢,就是呃,找点感觉好,现在呢,我们继续往下面来看这个其他的作业啊,这些练习呢,大家有时间就去做一做啊,比如像这里面还有课后题对吧?哎,做一个小小的计算器类,那实现这个加减乘除的四个功能啊,这个呢,同学们可以啊,在课后进行一个练习。好,下面呢,我们把这个类与对象说完以后啊,同学们我们来再再写几,再看一下类与对象的应用实例,就是体验一下这个类与对象的一个编程,那这里呢,我一共有这个三个题啊,有三个题,那么我就写其中一个,就是按照人家的要求,我们来看看内与对象应这个实例,这个案例应该怎么写,我写一个另外的这个盒子案例,还有一个景区门票案例呢,同学们作为课后练习去完成啊,一定要去练,那老师呢,就写一个,因为时间的关系,我就写一个,好吧,其他呢,也不是很难,都说的很清晰,好同学们,呃,我们我们先把刚才那个讲的这个方法的先截一段视频啊,然后再讲这个内容。
我来说两句