



知识点讲解:光盘:视频\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中的注释有两种,分别是单行注释和多行注释,具体格式如下所示。