飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2341|回复: 0

3.2 变量

[复制链接]

该用户从未签到

发表于 2005-2-26 20:53:29 | 显示全部楼层 |阅读模式
[center]3.2 变量 [/center]

  为了在Java中存储一个数据,必须将它容纳在一个变量之中。定义一个变量的两个基本要素是:类型和标识符,通常你可以用如下语法去说明变量:
  type identifer[,identifer];   该语句告诉编译器用“type”的类型和以“identifer”为名字建立一个变量,这里的分号将告诉编译器这是一个说明语句的结束;方格中的逗号和标识符表示你可以把几个类型相同的变量放在同一语句进行说明,变量名中间用逗号分隔。
  在你创建了一个变量以后,你可以给它赋值,或者用运算符对它进行一些运算。如同上一节内容中所提到的一样,类型将决定变量所代表的不同种类的数据,在Java语言中有两种变量。最基本的是简单类型变量,他们不建立在任何其他类型上,整数、浮点、布尔和字符类型都是这类型;另外Java可以定义构造另一种变量类型:类,这些类型建立在简单类型之上,它包括数值、变量和方法,是一种数据与代码相结合的复合结构。
3.2.1 整型变量的说明

  整型变量按所占内存大小的不同可分为四种不同的类型,最短的整型是byte,它只有八位长,然后是短整型short,它有16位,int类型有32位,长整型long是64位,下面是这些整型变量的说明示例。
    byte a;
    short row;
    int numberOfSportor;
    long treeCount;
    int x,y,z;

3.2.2 浮点变量的说明

  浮点类型可用关键字float或double来说明,float型的浮点变量用来表示一个32位的单精度浮点数,而double型的浮点变量用来表示一个64位的双精度浮点数。double型所表示的浮点数比float型更精确。
    float alpha;
    double speed;

3.2.3 字符变量说明

  Java使用16位的Unicode字符集。因此Java字符是一个16位的无符号整数,字符变量用来存放单个字符,它不是完整的字符串。示例如下:
    char a;
    a='c';

3.2.4 布尔变量说明

  布尔型有真和假两个逻辑值,另外,逻辑运算符也将返回布尔类型的值,示例如下:
boolean mouseOn;
mouseOn=true;
  布尔型是一个独立的类型,它不像C语言中的布尔型代表0和1两个整数,由于这个原因,Java中的布尔类型不能转换成数字。

3.2.5 变量的使用范围

  当你说明了一个变量后,它将被引入到一个范围当中,也就是说,该名字只能在程序的特定范围内使用。变量的使用范围是从它被说明的地方到它所在那个块的结束处,块是由两个大括号所定义的,例如:


      class Example
      
         public static void main(String args[])
         
            int i;
            ......
         
         public void function()
         
            char c;
            ......

  整型变量i在方法main中说明,因为main的块不包括function块,所以任何在function块中对i的引用都是错误的。对字符型变量c也同样如此。
  在某一个特定情形中,变量能被别的变量所隐藏,如:在一个块中说明一个变量,而在这个块中建立一个新块并且在其中定义相同名字的变量,这样在第二个块中,程序对该变量的使用均是指第二次定义的那个变量。这样我们说,第一个变量被隐藏了。变量隐藏的示例如下:


      class Example
      
         public static void main(String args[])
         
             int i;     //    * * *
             boolean try=true;
             while(try)
            
                int i;  //以下对变量i的引用均指这里定义的i
                ......
                 //以下对变量i的引用均指* * *处定义的i
                ......

  当你定义一个变量时,首先必须明确它的活动范围,并根据它的实际功能来命名,此外还应尽量使用详细的注释,这些办法可以使你能够清晰地区分变量,变量被隐藏的问题也会大大减少。

3.2.6 类型转换

  系统方法System.in.read返回一个整型数值,但你却常常想要把它当作一个字符来使用。现在的问题是,当有一个整数而你需要把变成一个字符时应当去做些什么呢?你需要去做一个类型转换为一个字符。从一种类型转换到另一种类型可以使用下面的语句:
    int a;
    char b;
    a=(int)b;
  加括号的int告诉编译器你想把字符变成整型并把它放在a里,另一方面,如果你想做相反的转换,你可以使用:
    b=(char)a;
  记住整型和字符型变量位长不同是非常重要的,整型是32位长,字符型是16长,所以当你从整型转换到字符型可能会丢失信息。同样,当你把64位的长整型数转换为整型时,由于长整型可能有比32位更多的信息,你也很可能会丢失信息。即使两个量具有相同的位数,比如整和浮点型(都是32位),你在转换小数时也会丢失信息,Java不象c/c++那样允许自动类型转换,当你进行类型转换要注意使目标类型能够容纳原类型的所有信息,不会丢失信息的类型转换有:


          原始类型              目标类型
   
          byte          short,char,int,long,float,double
          short         int,long,float,double
          char          int,long,float,double
          int           long,float,double
          long          float,double
          float         double

           表3-3  不会丢失信息的类型转换列表

  需要说明的是,当你执行一个这里并未列出的类型转换时可能并不总会丢失信息,不过进行这样一个理论上并不安全的转换总是很危险的。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表