00:00
大家好,我是海波老师,变量的语法啊,咱们已经讲过了,那么接下来呢,咱们讲一讲从变量中衍生出来的两个语法,标识符和数据类型,咱们先说第一个标识符,那么这里呢,咱们先创建我们的程序啊,咱们首先拷贝CTRLC,咱们CTRLV,把它呢改成零二啊,然后下面呢,咱们这个叫and fire,好了,这个呢就是标识符的意思啊,咱们点击OK。点击完成以后,我们把里面的内容呢,咱们全删掉,咱不要了,然后呢,我们写上它啊,咱们叫做它,咱们叫标识符,好,那么说到标识符呢,我们先写一句话啊,咱们想它叫内等于张三好,那什么是标识符呢?咱们之前提到过啊,变量的名称可以用于在内存中来标记数据的位置,就像咱们之前给大家画图的时候,咱们这个叉叉一样,这个叉叉叉它就指向了我们hello Java这条数据的位置,所以它会有一个箭头,我们把这个称之为叫向量存储,这个咱们讲过对不对?所以啊,什么叫标识符?很简单,标识数据的符号我们就称之为标识符,所以咱们这里写上标识啊,咱们叫数据的那个符号,诶,咱们称之为标识符,好了,那不用说了,咱们这个name名称对吧,这里的变量名称其实就是我们的标识符,所以啊,咱们的变量名称它就是标识符。
01:26
对吧,但是啊,同学们,标识符不仅仅只局限于变量的名称,在Java语法中,只要和起名相关的,我们都可以称之为叫标识符,所以啊,我们的标识符的主要用途啊,咱们标识符它主要用于起名,对吧?诶好了,那么既然在内存中的数据存储啊是通过符号来进行标记的,那么我们可以采用哪些符号呢?这就涉及到加语法中的标识符的命名规则了,来咱们写商咱们叫标识符的命名规则,首先这里的规则呢,我们先说第一个啊,就是我们的英文啊,咱们的英文拉丁字母,我们的每一个英文拉丁字母啊,它就是一个符号,所以英文字母是可以作为标识符用于起名的。
02:16
而且咱们计算机本身就是外国人发明的,所以常规意义上啊,都会使用有意义的英文单词作为标识符,咱们写上啊来好了,写完了,那么这里的U啊,它其实就是一个英文单词,对吧?那么这里的name不也是英文单词吗?所以咱们拿英文单词来起名是没有问题的啊,不过呢,语法中啊,没有强制的要求说我们必须用我们的英文单词,咱们汉语里面的拼音不也是拉丁字母吗?对不对?所以这里其实是可以使用我们汉语拼音的啊,咱们再来一个啊来,咱们叫姓名来等于李四,你会发现没有任何的问题,对不对?哎,讲到这儿,有的同学会说了啊,老师不能这么写,他不符合规范,不能这么用。
03:05
听到这话我就觉得很奇怪了,咱们这讲的是语法呀,语法中没说不能用对不对,只要是咱们的拉丁字母呢,咱们都能用,对不对?而且啊,在企业软件开发中,微信号使用变量名啊,其实就是用汉语拼音咱们的微信对吧?那这不就是我们汉语拼音的简写吗?还有呢,我们那个QQ对吧,咱们QQ号码呢,它的那个变量名称,我们一般就是用QQ。那你说这个该怎么解释呢?对不对?你说不能用啊,你不能双标对吗?你不让别人这么起名,然后你自己在软件中这么去用啊,用汉语拼音,这是没有道理的,对不对?其实啊,咱们学习的时候是怎么好理解,怎么方便,咱们怎么起名,你自己明白不就好了吗?生活中啊,你注册个网站,你玩个游戏,你起个名字就老费劲了,对不对?你说你自己学习的时候,你也整的这么费劲,花很大精力非得起个有意义的名称,想了半天啊,你还没想出来,你累不累呀?图啥了对吧?变量名称起的有意义,这件事情本身就没有意义。
04:05
不过呢,诶,记住了,等你学会了以后,你工作了,那别人让你怎么写,你就应该怎么写了,对吧?你的领导让你写单词,那你不就写单词吗?那你不会就查字典对不对?那如果领导让你写汉语拼音,那你怎么办?你还写单词吗?那你还得写汉语拼音对不对?所以啊,我们在工作中和我们学习不是一回事啊,那个时候就别去较真了,好了,咱们继续啊,那么说到符号呢,其实咱们的键盘中就会有很多的符号,对吧?哎,所以呢,我们写上它,咱们叫做符号啊,这些符号呢,在我们键盘中会有很多,比方说啊,咱们的什么圈A是吧,咱们这里呢,写上啊咱们的圈A啊,什么井号啊,什么百分号啊,什么Dollar符,对不对,会有很多的符号,但是我们的Java语法中只有美元Dollar符号和我们的下划线可以作为标识符使用,所以咱们这里说一下咱们的标识符啊,只能采用我们的下划线和我们的美元啊,美元咱们的Dollar符号,哎,这两个符号。
05:04
那么其他符号它不能使用我们称啊,不能我们的使用,我们称之为叫特殊符号,哎,是这个意思,那咱们来演示一下,那么这里我们写上一个string,我们叫下划线name啊,等于我们的玩五,这么写没有问题,或者呢,你再来一个啊,咱们再来一个,我这里写上一个Dollar符也没有问题啊,这是完全可以的,好了,我们打印一下,咱们打印一下,咱们这里呢,把这个下划线内呢放过来,然后呢,把这个Dollar符内咱们放过来,甚至于呢,我们这里呢,可以呢,再来写一个,咱把这个下划线啊,咱们都统一一块是吧,都放到一块,哎,也是没有问题的啊,好了,我们运行一下。大家可以看到这个语法是对的,那既然是对的的话,我们这里需要注意一下,我们的那个空格啊,它也属于我们的特殊符号,所以在起名的时候是绝对不允许的啊,所以咱们说一下咱们的空格啊,它属于我们的特殊符号,所以也不能啊,所以也不能作为标识符使用,哎,这个咱们注意到就可以了啊,那接下来呢,咱们再说一下咱们的数字啊,来,我们写上三我们的数字阿拉伯数字啊,零到九是可以作为我们的标书使用的啊,所以呢,我们的阿拉伯啊,阿拉伯数字,我们的零到九,哎,它可以作为标识符使用啊,这是没有问题的,但是呢,有需要注意的地方,就是说我们的这个数字啊,如果啊,在我们的标识符的开头位置啊,咱们的开头,我们的位置,那么它会被识别,为什么呢?为数字而不是。
06:47
标识符就是你把数字开头以后,他在编译的时候啊,会认为这是个数字,那这样的话他就不认为是个标识符了,所以就会报错啊,所以它会发生错,来咱们看看啊,来咱们写上它,咱们叫string,我们叫做name,然后写前面写上一个一,咱们写上一个我们的张三,你会发现这样的话是不允许的,为什么?因为啊,你把一开头了,他就会认为这是个数字,但是你数字你怎么可能放在这个位置呢?你的数字不是应该放在这个位置吗?因为我的123,这不是属于数据嘛,对不对?哎,所以这就有问题了。
07:21
但是呢,我说了你开头不行,但是你这么写是可以的,我们把这个用斜线给它住掉啊,把这个一我放后面,这个是没有问题的,因为你放在后面的情况下,它就认为这是一个标识符的一个命名,这就没有任何的问题,对吧?所以我们的数字它可以使用,但是不能开头,这个咱们千万注意啊,它可以作为标志使用,但是它不能开头,哎,这个咱们注意就可以了啊,前面咱们讲了几个能用的啊,那么接下来我们再讲几个不能用的。来。咱们写上一个我们的四在大括号啊范围内,我们的标识符它不允许重复,这句话是什么意思呢?很简单,你前面不是有很多的这个名称,我们都称之为叫标识符吗?那如果你有重复的标识符的话,那是不行的,比方说我再写上一个name啊,等于我们的到好了,你写完以后,这个语法本身没问题,但是由于在前面的位置它已经有这个name了,所以说你在这个位置再去写一遍,它就会报错,所以咱们鼠标放上去,你会发现它就会提示你,我们的这个变量name在当前范围内是已经声明过的,什么叫当前范围,就是我们当前的这个大括号。
08:38
在这个大括号里面,我们的标识符是不允许重复的,就是这个意思,但是啊,你改个名,写个NAME2,诶就没事了,你写个NAME1呢,哎,也标红,为什么?你看这不就叫内幕一嘛,对不对?诶,所以啊,把它记住了就可以,接下来我们再说一点,就是我们的这个标识符,它是区分大小写的,这句话什么意思呢?哎,很简单,你刚才不是有个name吗?好,我们再来写个name,所以咱们拷贝,我拷贝以后我再写个name,这个地方它会发生错,对不对,但是你这边把这个N你写个大写是没有问题的,哎,那这是为什么呢?
09:19
在Windows系统当中,我们的文件名称和那个目录的名称啊,它其实是不区分大小写的,他认为大小写是一回事儿,但是在Java语法当中,我们的大小写其实是区分的,为什么?因为你源码中你区分了大小写,但是它转换成机器码之后,就变成了两个不同的机器指令了,那这样的话其实不会有冲突的,所以啊,咱们这里其实是有一个转换的过程,这里给大家去解释一下对吧?嗯,好了,那这是我们的第四点啊,接下来我们来说第五点,Java语言中它预先啊定义好了一些我们的标识符名称啊,标识符名称,那么我们在编写代码的时候,这些名称是不允许我们使用的,因为它已经存在了,对不对,你再写不就跟刚才一样,它重复了吗?那你重复以后不就会有问题嘛,对不对,就这意思啊,我们把这些预先定义好的这些标识符呢,我们称之为叫做关键字或保留字或保留字。
10:19
其实啊,咱们看一看啊,咱们前面我们的这个什么public呀,什么class,什么static呀,这些就是我们Java已经预先定义好的名称,你就不能起这样的名称了,来咱们试一试,咱们拷贝,拷贝以后我就写上,咱们不有一个叫sta提吗?咱们拷贝拷贝过来,你放到这里,你会发现语法是不对的,你再去写一个,把这个public你再拿过来,拿过来以后也不行,哎,但是我们刚刚讲过啊,我们的Java当中是区分大小写的,你这么写不行,对不对,但是你把它改成我们大写的P,哎,这个就行了,为什么呢?他认为这是两个不同的东西,那么就不会有任何的问题了,不过这样做呀,还是容易混淆的啊,容易造成歧异,所以呢,我们能这么用,但是其实不推荐啊,我们这里呢。
11:09
我们可以使用我们的大写啊,来实现我们的关键字名称啊的定义啊,但是呢,我们说容易啊,造成我们的棋,所以我们不推荐,哎,不推荐好了,这个呢,给大家稍微的我们说一下就可以了啊说到大小写了,这里呢,我们还要说一点,就是当我们用英文单词起名的时候啊,有的时候会将很多的单词我们拼接在一块儿,比方说咱们前面有个叫做user nameme,对吧,那么这个时候呢,我们一般情况下,为了更好的区分每一个单词,我们会从第二个单词开始呢,我们的第一个字母会采用大写,那么其他的单词呢,我们都是小写啊,所以呢,我们有的是这样的啊,来咱们想它,我们写上string,我们叫U,我们叫name,它等于张三,什么意思?同学们,你会发现我们之前呢,是U是个单词,我们的name是个单词,两个单词我们合二为一,对吧,我们之间全是小。
12:10
写的,但是这样的话呢,有的时候不太好区分这个单词,所以怎么办,我们就会从我们的第二个单词的第一个字母呢,让它变成我们的大写,这样的话,我一看,哎哟,这是一个单词,这个单词我们就好区分它,对吧?哎,所以我们有这样的一个命名的一个规范,那么这种我们的命名标识符的方式呢,我们就称之为叫驼峰标识,它是一种规范,就是你这么写更容易被识别和理解,对吧?诶是这么一个概念啊,这个不叫规则,就是你不这么写也没事儿,你这么写会更好一些啊。那么这里呢,还有一个问题,既然可以把英文单词我组合在一起,那么有没有个数上的限制呢?比方说有100个200个的限制呢,或者说我们的这个名称的长度上有没有什么限制呢?所以咱们写上七,咱们叫做标识符的长度,其实我们加号中没有对这个长度有任何的限制,所以我们说一下咱们写上没有啊长度的限制,但是大家想一想吧,你如果你太长太多的话,你写起来和理解起来不都是挺麻烦的嘛,对不对?所以一般情况下咱们借名之意就行了,没有必要必须写的很完整啊,写的很长,其实也没有这个必要啊。
13:22
好了,标识符的语法呢,咱们就说到这里了,那么最后呢,给大家留一个小问题,咱们前面啊,咱们给大家起名的用的都是一些我们的英文的单词之类的,那么大家想一想,我们的中文可不可以用来命名标识符呢?
我来说两句