JAVA-初步认识-第二章-变量的基本演示03

一. 在DOS上演示变量的使用

在JAVA中,变量在使用时有着严格地书写规则:变量类型  变量名  =  初始值;这是对变量进行定义,定义完了之后,就可以使用变量,也就是可以不断地对变量进行赋值。(在定义的同时,也在内存中开辟了一块空间用来存放不同的常量)要注意在不同的位置定义变量,变量的作用域也不同。

注意:定义变量就是开辟小块的内存空间,不能同时定义两个相同类型,相同变量名的变量,这是不允许的,除非作用于不同的域。

视频中在演示时,出现了一种错误叫:没有发现VarDemo的类,我自己也操作了一番,流程如下:

编写好源代码后,放置在d:\source\03的文件夹中,命名为VarDemo.java,接着在DOS命令行窗口中进行操作。

这种情况是,我改变了classpath的路径,虽然在当前目录下可以编译类文件(在当前目录下生成了Vardemo.class文件),但是在java命令在当前目录下运行类文件时,是直接去了classpath,因此又找不到运行文件,从而DOS报错。还有一种可能性就是,在java命令执行的时候,输错了类文件名。比如这里经过javac编译后的是VarDemo.class运行文件。运行时,应输入java VarDemo,如果此时将VarDemo输错,就会显示无法加载主类,因为根本不存在错误名字的类文件。(DOS报错时,指出了出错的两个原因。)→这个知识点属于环境搭配。

注意:这里还有一个小知识点。比如定义变量b,long b=1234556678901231;运行时,会报错,显示数据过大。但是在1234556678901231后面加上l,DOS就不会报错。原理在于,像这种java中直接输入的1234556678901231属于int类型。范围是上亿,这里明显超过了,加上l就标明为长整型,将其归于天文数字,从而将数字的固有属性从int变为了long,最终的结果也就不会再报错。

同样的道理,定义单精度浮点数时也会有这样的问题,如float b=2.3;运行时会出错。原因就在于2.3的默认属性是double,这和float单精度不匹配,会显示精度丢失。结果显示在下面。必须要申明为2.3f。→2.3超出了单精度的范围么?如果没超过,系统为什么不能自动调整呢?就像 short a=3一样。

在定义字符型的时候,有一点还要弄清楚,字符有哪些? 标识符的内容我们是知道了,0-9, 26个字母,_和$。

注意:这里在定义字符型char时,单引号若用的是中文字符的‘’或者分号用成中文字符(下图DOS的报错就是用的中文分隔符),那么在DOS运行时会报错,结果显示如下。

注意:这里还有一点,我认为是非常重要的,就是变量的使用范围的问题,定义的变量只能在相应的范围内使用,超出了这个范围就无效了。范围就是{}所包含的内容。变量所能定义的域。

这里做一个分析,当主函数有两个范围时,也就是两个{},按照程序来说,是应该有两个输出,在第一个输出中没有定义a,就想要输出a,那肯定是找不到符号。接着,我又想,在一个主函数下,两个范围之间联系紧密么?我又重新在第一个范围里定义好了a,然而DOS的结果显示,两个范围还是相当紧密。

 变量的作用域,或者说代码块所能定义的范围和函数之间的关系,仍旧是一个不懂的知识点

 

posted @ 2017-09-02 09:16  前锋营  阅读(201)  评论(0编辑  收藏  举报