00:00
好,那接着这个final的话呢,我们说它不止是可以用来修饰属性的,它呢可以还是用来修饰的,叫局部变量。修饰局部变量,这个局部变量的话呢,我们有两类比较典型的局部变量,一个呢,就是在你方法内声明的这种,还有一个呢,就是行参这个构造器,这种呢,就是你参照方法的行参就可以了,这呢我们就直接来举个例子。我在这个位置写一下,我呢写一个public,哎VO我写一个收方法,这是一个普通的一个方法了,这个方法内部呢,我们定义一个number,这呢就没有具体的这个含义了啊,我这儿就是直接定义了一个数值了,这个数值呢,如果你不是一个final的,你可以对它呢进行一些再操作,这都没有问题,但是当我们把这个number呢声明为一个final的时候,它此时呢表示的就是一个常量。它就是常量了,那常量的话呢,大家要习惯于把它呢生命成是一个大写的了,这个呢,我也暂时改成大写,你就不能对它呢再进行一个复制操作了。
01:06
因为它这个final的这个很好理解,那就把它呢就禁掉就完了,这呢说的是这个final修饰这个方法体里边的这样的一个局无变量的情况,那除了这种情况之外呢,我们说还有可能呢,是这个行参public word受我这呢写一个重载的方法,在这个位置呢,我们声明了一个int型的一个叫number了,这呢是个行参,然后这个行参的话呢,我加了一个final。那就意味着你这个行参他也不是一个变量了,那诶也没赋值也没报错。对,还没往里传呢,行参呢比较特别,咱们说这个行参呢,赋值的时候就是你调的时候才赋值,好,那就回到这儿了,咱们这边拿着这个test,我去调一下这个收方法,调的时候呢,我这付了一个十。在这里边的话呢,比如说我们就想简单的打印一下这个number值,这没有任何问题,我执行的话呢,这个十呢也可以出来。
02:08
哎,这就出来了,那final修饰这个number,它修饰以后呢,点是什么呢。就是你这个number呢,你就别再去操作了,比如我这写了个20,这肯定不对。肯定又报错了,又是个final的,就是当我们用final,尤其要说的就是这个行参,Final修饰一个行参的时候呢,就是当我们调用此方法时,给这个方法的行参附一个食材。这个一旦复制以后,在方法内只能对这个变量进行调用,你不可以对它进行一个再修改,那就是这样的情况呢,是要禁止的编译不通过行,那这块呢,我们这个尤其关于这个形态这块呢,要描述一下修饰这个局部变量,哎,我们这里边说尤其。放到下一行,尤其是使用final来修饰平餐时。
03:09
行参时,那表明此行参是一个常量。那这时候这个常量呢,不是说你马上要给他在这赋个值,这肯定不对的啊,还是遵照我们以前的这个规则,那就是当我们调用此方法时,然后呢,给这个常量。行餐复一个食餐。哎,复一个实参,那一旦复制以后。那就只能在方法内使用这个赋值以后的这个这个这个变量了啊,这个这个三角常量了啊,一旦赋值以后,就只能在这个方法体内使用此这个行参啊,但不能进行重新赋值。
04:04
或者让你进行一个修改,这都算是重新赋值了,这就不可以了,因为它是一个常量了。行,那关于这个final呢,修饰这个局变量这块,尤其呢,我们说的这个形态这个事儿呢,就说完了这一段呢,你要修饰的是一个普通的一个这个局部变量的话呢,就像刚才说的这个number,这没啥可说的了,就是你复完值以后,后边别改就完了。哎,这就行好,那final的话呢,我们关于修饰这个变量的这个事儿呢,就说清楚了。啊,Final修饰一个结构,我们说呢,表示的叫最终的。这样最终的那关于修饰一个类,修饰个方法,修饰个变量我们就讲完了,那么在后续的使用当中呢,大家经常会看到我们final修饰的结构,同时呢,有的时候还经常会加上一个static。那这里呢,就相当于它俩呢,是可以组合在一起用的,如果我们见到一个结构声明为叫static final了,那它表示的是什么意思呢?
05:00
那就是它俩有的意思就都合在一起,都有,那sta这个体现的就是一个随着类的加载而加载这样的一个概念,而我们final呢,体现的是一个不能变是吧?哎,那就是用static final,我们如果用来修饰一个。修饰什么呢?咱们static咱们讲说能用来修饰什么呀。修饰类不可以吧,你现在用带这个加FINAL1起来修饰的,是不是只能找他们共同能够修饰的这个结构啊,Static final可以用来求饰什么结果?属性方法就是先说static static呢是属性方法,构造性能嘛,不能代码块,还有内部类,这是我们static的final呢,属性可以,方法可以,这俩不可以,那static final是不是就意味着可以用来修饰这俩结构,哎,这呢就确定下来好,那如果我要是用static final来修饰这个属性的话,那这个属性呢,我们就通常把它哎称作叫全局常量,这个全局呢,就体现的是这个static的意思,随着这个类的加载而加载,就这一份可以通过类呢直接来定。
06:22
嗯,然后呢,这个final呢,体现的就是个常量的意思,后边呢,咱们经常会见到这个用static final来修饰一个,这个修饰一个变量了啊,就叫全局常量了,尤其是我们接口当中,接口当中的这个属性都是static final的。嗯,你要用带这个方来修饰一个方法。那这个方法的话呢,就是直接通过这个类呢去来调,然后这个方法呢,不能够被重写,哎就是这个意思,通常呢,咱们自己要定义方法的话呢,加上一个final的情况还是比较少的。再说一遍,咱们自己再定一个方法的时候呢,咱们加上final的这个修饰呢,还是比较少的,就是通常呢,你要是愿意继承,呃,愿意重写,你就重写就完了,你要不重写,不重写你就搁那我没加,没加也没事,但是我们要是修饰一个属性的时候呢,明确呢表示这个属性是不能变的,我们通常都一定要加上final,只要你看到一个还习惯上叫变量了啊,看到你或者叫属性了,你看到这个属性呢,是个大写的第一反应就是它是一个常量。
07:25
像我们这个平时开发当中,像我这举的例子,上下左右,呃,我们定义这样的一个值的时候呢,那都习惯上定义成是个常量了,而且呢,就是一个全局常量了。还有呢,比如说我们后边写个程序,写个程序呢,就像咱们写了一个项目二一样,咱们造了一个叫customer list里边呢,咱们去造了一个数组的长度,这个长度呢,一开始我们也可以给它定义好,说这个容量呢就得是十,你把这个容量呢就可以定义成个常量,然后在这个构造器里边,你去用这个常量。那这个常量呢,我们有的时候呢,如果确实是常量,那就一定要加上个final了,又因为它是个全局的,我们就爱加上一个static,所以这俩呢混在一起去修饰属性的情况呢,我们后边常见它俩混在一起修饰一个方法,其实见的比较少啊,那就这样。
我来说两句