00:00
那么接下来咱们。进展到哪了?进展到咱们变量分类,再往最后一个,就是关于我们第三章最后一个知识点啊,关于变量的一个作用域,关于变量的一个作用域。这个变量的作用域,什么叫变量作用域呢?零八啊。Public static void men。变量的作用。一什么是作用欲?什么是作用欲?啊,就是变量的什么有效范围。啊,变量的有效范围就是作用域啊,就是变量的作用范围,有效范围啊,这就是作用域,各位啊,关于变量的作用域啊,大家可以记住一句话。
01:10
啊,什么话呢,就是出了大括号就不认识了啊,出了大括号就不认识了,什么意思各位啊,比如说现在啊,我在这块定义一个变量等于100,结果呢,我在这里呢,Public static VO X有这么一个方法啊,这个方法怎么定义先不用管啊,这个方法怎么定义先不用管啊,后面会学习那么。在这个位置上我能不能访问I变量呢?在这个位置上能访问I吗?在这儿能不能访问这个I呢?就是说这个I在这定义啊,我在这儿访问行不行啊。哎,这个我直接告诉大家了啊,这个是局部变量对不对,哎,你记住一句话,变量它的作用范围,它的有效范围,叫出了大括号就不认识了,那现在你在这个大括号里边对吧。
02:09
出了这个大块之后,在这访问这个I能不能访问啊,访问不了啊,访问不了,所以这块呢,我们编译一下Java c编译啊VAR test的零八.java编译之后就报错啊,就报错说找不到符号,定找不到符号,说第20行找不到符号,你要把这个错误的信息积累出来,你就知道了,第20行找不到符号,说这行错误了,找不到符号I访问不了啊I。是无法访问的啊,是无法访问的。啊,I是无法访问的,那么现在呢,我想问大家,这里有一个I等于100,那你说我在这里可以定义。一个变量起名I吗?I等于200行不行啊?不在同一个域当中啊各位,这个I的有效范围。
03:02
这个I的范围是X方法啊。这个I的有效范围是X方法,这个I的有效范围是有效范围啊,是X方法啊,这个I的有效范围是闷方法啊。这个I的有效范围啊。是闷方法。啊,所以这两个I啊不冲突,所以这个I和闷方法中的I不在同一个域当中。啊。不冲突各位啊,不冲突,这个I和这个I是两块不同的I,是两块不同的I啊,Java c编译VR。TEST08加Java好,大家看没有任何问题对吧,没有任何问题,那么接下来我在这个位置上,我我我在这干什么呢?我定义一个什么呀,In特I啊,我在这定了个int啊,等于200。
04:08
那么这个变量我们称为什么呀?称为成员变量,对不对,刚才我们给它起了个名字啊,这个叫什么呀,叫做局部是不是,哎,我们这块呢,其实这个哎也叫什么呀,叫做局部变量。那么现在呢,这个假如说这个I啊是1万,那么现在呢,我们去访问这个I,这个闷方法当中,这个I这个I的值是多少。这个I是多少,就是我想问的是这个I访问的是这个I还是这个I,还是说嗯,还是说这个I和I重名呢?记住啊,这个I的作用域啊,是这个大括号。那么这个I的作用域是什么呀?是这个大括号。啊,它的玉是不一样的。啊,我说大家有没有刚才记住啊,如果说你这个位置生明一个I,在我这个同一个域当中。同一个域当中。啊,再写个。
05:02
这是不允许的。啊,这是不允许的,因为你这样写的话,你这个空间就同名了,同名之后加法逊你就分不清了,那如果说我在这个域当中,生命I,在这个域里面生命I。对吧,哎,那么这一块呢。咱们会不会冲突,先来看一下,首先我们先证明了这个和这个其实并没有冲突,对吧?哎,刚才已经编译了,那么这个这个还有这个这三个冲突不冲突,因为这三个都在不同的域当中,这个是哎我们的类体域对吧?而我们的这个呢,是什么呢?哎,是我们的一个方法体这样的一个域,这个呢,也是在方法体当中这样一个域,那么接下来我们去编译一下。加上C。我们来看编译能不能通过。那这块的编译通过这说明啊,没有任何问题,也不出也不出现同名或者是冲突的这个情况,对吧?那么接下来我想访问一下这个I,这个I访问的是这个1万还是这个100呢?我们来看看Java区运行VAR test08走一个好,再看访问的是100对吧?哎,这里访问的是100,访问的是100啊访问的是100,这说明什么呢?哎。
06:09
Java中有很重要的原则,就是就近原则,Java中啊,有一个很重要的原则,就是就近原则。谁谁近就访问谁啊,哪个近。哪个离我近?哪个离我近?就访问哪个。啊,注意哪个离我近就访问哪个啊,这是个就近,其实这不只是Java是这样的啊,不仅Java中是这样。其他编程语言。都有这个原则啊,都有这个就近原则啊,就近原则。所以你看编译一下对吧,哎,然后再去运行啊,再去运行没有任何问题啊,没有任何问题,那这个是关于我们变量的作用域,其实大家记住一句话就行啊,就出了大括号就不认识了。
07:09
出了大括号就不认识了,你记住这句话啊,叫出了大括号就不认识了。啊,好,那现在。嗯。我考一下大家啊。考核一下。以下编写的什么呀,For循环啊,你看不懂。没关系啊,后面会讲for啊,I等于。零。I小于10I加加。这个。我在。For循环。执行结束之后。啊叫for循环啊,For循环执行结束之后。在这里访问I变量。
08:00
可以吗?啊,这这这边比较了,叫叫叫N吧,N啊。然后N,哎,然后这块呢,访问N变量可以吗。嗯,就是这个放里边我没写代码啊,这里我没写代码,这里没有编写代码啊,这里没有编写代码。对,我就直接写了个for,你看不懂啊,就是说我只是告诉你这个声明了,这不int I等于int n等于零嘛,这个这个声明是在这个for里边声明的,那你说我for结束之后,呃,这个大括号结束了,对吧?哎,我刚才说出了大括号怎么着啊,就不认识了,那你说我在这个位置上,我访问这个N,你觉得行不行。就我只是考一下大家啊,这里访问N可以吗?注意同学们啊,这不行不行啊,你这个N。只属于这块代码。注意啊,这里声明的N变量啊,只属于什么呀?只属于for与啊,只是属于for啊,然后这里不能访问N这里。
09:08
For结束之后,这个N的空间就释放了啊。For结束之后,这个N的空间就释放了for。结束后N释放没了啊,所以你记住一句话,叫出了大括号就不认识了,就死记啊死记。这句话啊,死记这句话就出了那块就不认识了,那这里能访问吗?来我们编译一下,好,我们来看他说32行错误,找不到符号,32找找三十二三十二在这儿,你看这有问题对吧,所以说这样肯定是不行的,那如果说我现在的这个for啊,我是这样写的,各位看好了啊。这个是这样的。啊,这里没有代码啊。K。
10:01
我声明一下。声明之后呢,这个里边是K等于零,然后K呢,小于10K干什么呀?加加,我想问的是在这里能访问这个K吗?这里能不能访问这个K行不行。它的域不一样了,各位啊,原先啊,你在这儿声明的时候,你这个N变量啊,是属于你的for域的,但是呢,你如果这个K声明是在这个位置上,那你这个呢,是在我的闷方法当中,属于闷郁啊,这属于什么呀?属于闷郁啊,所以那么你这个for循环结束之后,我在这里能不能继续访问?能否继续访问K呢?哎,这个是没有任何问题的啊,没有任何问题的来编译,大家看语法是没有任何问题的啊,编译通过啊,这个是K是可以访问到的,那么这个呢,就是关于我们变量的一个作用域,大家其实记住一句话,叫出了大括号就不认识的,出了大括号就不认识了,另外啊,在这里呢,我讲了一个非常重要的原则,叫做就近原则,就近取材,哪个离得近啊,我就访问哪个啊,你比如说这个I呢的访问就是这个I,和这个I呢是没有关系的啊,和这个I是没有关系的。
11:16
行了,那这样的话,咱们这个今天的这个内容啊,就就到这啊,咱们是等于是把这个变量啊,咱们就讲完了,再往下节课的话,咱们就讲这个数据类型了啊,就讲就学这个数据类型了啊呃,变量这块呢,是咱们今天非常非常重要的一个内容啊,怎么声明变量啊,怎么给变量赋值啊。那你想想啊,第一就是变量你的理解吧,你你能说出来变量是是干啥的对不对?哎,你得把变量说出来啊,变量就是内存里边一块空间,那就是个盒子,盒子里面放点数据啊,给变量起个名,每个变量都有数据类型,有值,然后访问这个变量的时候怎么访问呀?哎,我们直接拿变量名就行了,能访问了,那么我们变量怎么赋值,通过哪个符号啊,通过等号对不对啊,怎么去使用它,然后变量这块呢,能不能在一行上生明多个变量啊,啊,这是可以的啊,变量在同一个域当中能不能同名啊?哎,不能同名对吧?哎,不能同名,但是在不同的域里边名字可以一样,在不同的域当中名字是可以一样的,那变量分类这块呢,包括什么呀?哎,它的位置啊啊,如果在方法里边我们叫局部的啊,如果在方法外边的话,我们叫成员啊,要把这两个名字大家分清楚啊,有局部有成员,有局部有成员,然后呢,变量作用域啊,记住大家大家让大家记住一句话叫什么叫做出了大括号就不认识了啊,出了大括号就不认识了,你把这句话给大记住,出了大括就不认识了。
12:35
好了,那这样的话是关于咱们今天的一个内容啊,内容下边呢,有一个什么呀,章节的一个习题,这个习题很简单啊,大家把这个习题做一下就可以了啊,今天也其实也没什么太多的内容啊,但是现在大家写这个变量啊,只有一个办法就是用int对吧,没有办法用别的数据类型是不是啊,没有办法用别的数据类型没关系啊,咱们下节课就会讲这个数据类型啊,把数据类型讲了之后,哎,我们这块声明变量啊,就会更丰富多彩一些啊,现在比较尴尬就是一个类型啊。
我来说两句