登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沙漠里de烟雨

原创分享,禁止转载

 
 
 

日志

 
 

JAVA全局变量不能在类体中先定义后赋值  

2011-07-09 14:10:49|  分类: JAVA应用与研究 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
JAVA全局变量(或称成员变量)可分两种,一种是静态变量,另一种是实例变量,即在类体中定义的变量,有三点得注意:

一、成员变量不能在类体中先声明(定义)后赋值,但静态变量可以先在类体中声明,然后在方法中赋值(当然实例变量是不行的);

      1)如,以下程序会出问题:

public class hello {

   static int a;        //在类体中声明整型静态变量a。

   int  b;                //在类体中声明整型实体变量b。

  a=3;                 //在类体中对静态变量a赋初值。

  b=5;                //在类体中对实体变量b赋初值。

        public static void main(String[] args) {

             System.out.println("a+b="+(a+b));

             }

}

     2)以下程序可以运行:

public class hello {

 static   int a;        //在类体中声明整型静态变量a。

        public static void main(String[] args) {

              a=3;                 //在方法中对静态变量a赋值。

             System.out.println("a="+a);

             }

}

      3)以下程序也不可以运行,会报错:

public class hello {

    int a;        //在类体中声明整型实体变量a。

        public static void main(String[] args) {

              a=3;                 //在方法中对实体变量a赋值。

             System.out.println("a="+a);

             }

}

二、成员变量可以在类体中声明同时进行赋值,如 静态变量:static int a=3;  实例变量:int b=5; 

如:

public class hello {

   static int a=3;        //在类体中声明整型静态变量a并赋初值。

   int  b=5;                //在类体中声明整型实体变量b并赋初值。

          public static void main(String[] args) {

             System.out.println("a+b="+(a+b));

             }

}

三、所有变量(包括成员变量)均不能以这种形式声明并赋值变量(无论在类体中还是在方法中):int a=b=3;  因为编译系统认为 b 没有被声明何种数据类型。

 

还有,在数据类型转换上,有隐式转换和显式转换(即强制类型转换),隐式转换只能从高字节的数据类型向低字节的数据类型转换,这样不会丢失原有数据的精确度,如果要将变量从低字节的数据类型转换成高字节的数据类型,只能使用显式转换。如下:

short a=3;  

int b=65537;

a=b;

则程序会报错。

而这样:a=(short)b

就不会报错了。但有时会失去数据原有的精确性。如上,则a=1; 因为a被b以低16位的位值赋值了。

如下:


JAVA全局变量不能在类体中先定义后赋值 - 漠雨 - 沙漠里de烟雨
 
 
 
 从结果可以看出,显式转换后并不改变变量的数据类型。
  评论这张
 
阅读(6626)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018