知识点讲解:光盘:视频\PPT讲解(知识点)\第3章\量.mp4
量是用来传递数据的介质,有着十分重要的作用。在Java程序中的量既可以是变化的,也可以是固定不变的。根据是否可变,可以将Java中的量分为变量和常量。在接下来的内容中,将详细讲解Java语言中变量和常量的基本知识。
永远不变的量就是常量,其值不能改变,它们是不随时间变化的某些量和信息,也可以是表示某一数值的字符或字符串。在Java程序中,常量名经常用大写字母来表示,具体格式如下所示。
final double PI=value;
其中PI是常量的名称,value是常量的值。
实例001 定义几个Java常量
源码路径 \daima\3\ding.java 视频路径 \视频\实例\第3章\001
实例文件ding.java的主要代码如下所示。
public class Math { //定义一个全局常量PI public final double PI = 3.1415926; public final int aa = 24; public final int bb = 36; public final int cc = 48; public final int dd = 60; public String str1="hello"; public String str2="aa"; public String str3="bb"; public String str4="cc"; public String str5="dd"; public String str6="ee"; public String str7="ff"; public String str8="gg"; public String str9="hh"; public String str10="ii"; public Boolean mm=true; public Boolean nn=false; }
范例001:定义并操作常量 源码路径:光盘\演练范例\001\ 视频路径:光盘\演练范例\001\ 范例002:输出错误信息和调试信息 源码路径:光盘\演练范例\002\ 视频路径:光盘\演练范例\002\
在上述代码中,分别定义了不同类型的常量,既有double类型,也有int类型;既有String类型,也有Boolean类型,有关这些类型的基本知识,将在本章后面的内容中进行详细介绍。
在Java中,常量也被称为直接量,直接量是指在程序中通过源代码直接指定的值,例如在“int a=5;”这行代码中,我们为变量a所分配的初始值5就是一个直接量。
并不是所有数据类型都可以指定直接量的,能指定直接量的通常只有3种类型:基本类型、字符串类型和null类型。具体来说,Java支持如下8种类型的直接量。
在上面的8种类型的直接量中,null类型是一种特殊类型,它只有一个值:null,而且这个直接量可以赋给任何引用类型的变量,用以表示这个引用类型变量中保存的地址为空,即还未指向任何有效对象。
在声明变量时都必须为其分配一个类型,不管在什么样的程序设计中都会涉及变量的知识。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了操作方便,给这个空间取了个名字,称为变量名。因为内存空间内的值就是变量值,所以即使申请了内存空间,变量也不一定有值。要想让变量有值,就必须要放入一个值。在申请变量的时候,无论是什么样的数据类型,它们都会有一个默认的值,例如int的数据变量的默认值是“0”,char数据变量的默认值是null,byte的数据变量的默认值是“0”。
在Java程序中,声明变量的基本格式与声明常量的方式有所不同,具体格式如下所示。
typeSpencifier varName=value;
变量分为局部变量和全局变量,全局变量也称作成员变量,该变量被定义在一个类中,在所有的方法和函数之外,局部变量在一个方法或者一个函数中。
1.局部变量
局部变量,顾名思义,就是在一个方法块或者一个函数内起作用,超过这个范围,它将没有任何作用。由此可以看出,变量在程序中是随时可以改变的,随时都在传递着数据。
实例002 用变量计算三角形、正方形和长方形的面积
源码路径 \daima\3\PassTest.java 视频路径 \视频\实例\第3章\002
实例文件PassTest.java的主要代码如下所示。
public class PassTest //定义类PassTest { public static void main(String args[]) { //三角形面积 int a3=12,b3=34; //赋值a3和b3 int s3=a3*b3/2; //面积公式 //输出结果 System.out.println("三角形的面积为"+s3); //正方形面积 double a1=12.2; //赋值a1 double s1=a1*a1; //面积公式 //输出结果 System.out.println("正方形的面积为"+s1); //长方形面积 double a2=388.1,b2=332.3; //赋值a2和b2 double s2=a2*b2; //面积公式 System.out.println("长方形的面积为"+s2); //输出结果 } }
范例003:计算长方形和三角形的面积 源码路径:光盘\演练范例\003\ 视频路径:光盘\演练范例\003\ 范例004:从控制台接受输入字符 源码路径:光盘\演练范例\004\ 视频路径:光盘\演练范例\004\
执行后的效果如图3-1所示。
图3-1 执行效果
2.全局变量
明白了局部变量后就不难理解全局变量了,其实它就是比局部变量的作用区域更大的变量,能在整个程序内起作用。
实例003 输出设置的变量值
源码路径 \daima\3\Quan.java 视频路径 \视频\实例\第3章\003
实例文件Quan.java的主要代码如下所示。
public class Quan { //定义变量x, y, z, z1, a, b, c, d, e byte x; short y; //定义变量y int z; //定义变量z int z1; //定义变量z1 long a; //定义变量a float b; //定义变量b double c; //定义变量c char d; //定义变量d boolean e; //定义变量e //下面设置z1的值, 并分别输出x, y, z, a, b, c, d, e的值 public static void main(String[] args) { int z1=111; //给z1赋值 System.out.println(" 打印数据z="+z1); //下面开始分别输出数据 Quan m=new Quan(); System.out.println(" 打印数据x="+m.x); System.out.println(" 打印数据y="+m.y); System.out.println(" 打印数据z="+m.z); System.out.println(" 打印数据a="+m.a); System.out.println(" 打印数据b="+m.b); System.out.println(" 打印数据c="+m.c); System.out.println(" 打印数据d="+m.d); System.out.println(" 打印数据e="+m.e); } }
范例005:演示局部变量的影响 源码路径:光盘\演练范例\005\ 视频路径:光盘\演练范例\005\ 范例006:重定向输出流实现程序日志 源码路径:光盘\演练范例\006\ 视频路径:光盘\演练范例\006\
在上述实例代码中,全局变量将对这个程序产生作用,但是局部可以随时更改这个变量的值,在上面的程序里,定义了两个int z1;在局部中重新定义了这个变量,在这个局部中这个变量的值将会发生改变,将上面的程序运行,在这里定义了byte变量“x”、short变量“y”、int变量“z”和“z1”、float变量“b”、double变量“c”、char变量“d”、“Boolean”变量e,都未赋予值,但是在执行的时候都出现了值,这说明,不管什么类型的变量,都有默认值,未给变量定义值,它将以默认值产生,执行后的效果如图3-2所示。
图3-2 执行效果
在面对变量作用域的问题时,一定要了解变量要先定义后才能使用,但也不是在变量定义后的语句一直都能使用前面定义的变量。我们可以用大括号将多个语句包起来形成一个复合语句,变量只能在定义它的复合语句中使用。例如下面的演示代码。
public class TestScope { public static void main(String[] args) { int x = 12; { int q = 96; // x和q都可用 int x = 3; //错误的定义, Java中不允许有这种嵌套定义 System.out.println("x is "+x); System.out.println("q is "+q); } q = x; System.out.println("x is "+x); } }
注意: 正确使用注释
在本书前面讲解的演示代码中,为了让读者明白一段代码的含义,笔者特意在代码中添加了注释。Java中的注释有两种,分别是单行注释和多行注释,具体格式如下所示。