购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 量

知识点讲解:光盘:视频\PPT讲解(知识点)\第3章\量.mp4

量是用来传递数据的介质,有着十分重要的作用。在Java程序中的量既可以是变化的,也可以是固定不变的。根据是否可变,可以将Java中的量分为变量和常量。在接下来的内容中,将详细讲解Java语言中变量和常量的基本知识。

3.1.1 常量

永远不变的量就是常量,其值不能改变,它们是不随时间变化的某些量和信息,也可以是表示某一数值的字符或字符串。在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,而且这个直接量可以赋给任何引用类型的变量,用以表示这个引用类型变量中保存的地址为空,即还未指向任何有效对象。

3.1.2 变量

在声明变量时都必须为其分配一个类型,不管在什么样的程序设计中都会涉及变量的知识。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了操作方便,给这个空间取了个名字,称为变量名。因为内存空间内的值就是变量值,所以即使申请了内存空间,变量也不一定有值。要想让变量有值,就必须要放入一个值。在申请变量的时候,无论是什么样的数据类型,它们都会有一个默认的值,例如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中的注释有两种,分别是单行注释和多行注释,具体格式如下所示。 TkTyPDZWn98CWZpibYjnTaqvdt9E4NzgFPJNOhpDsPb5M7mC4ss0goR+IkQCoMkA

  • 单行注释://。
  • 多行注释:/**/。
点击中间区域
呼出菜单
上一章
目录
下一章
×