JAVA全局变量(即成员变量)可以分为两部分:静态变量和实例变量,也就是在类主体中定义的变量。 有三点需要注意。
另一方面,成员变量不能在类体中声明(定义)后再赋值,但静态变量可以在类体中声明后再在方法中赋值(实例变量当然不行)。
1 )公共类测试{静态int a; //在类体中声明整数静态变量a。 int b; //在类体中声明整数实体变量b。 a=3; //在类体中给静态变量a赋予初始值。 b=5; //在类中给实体变量b一个初始值。 publicstaticvoidmain (string [ ] args ) system.out.println ) (ab=() ab ) ); } }为什么}} java全局变量不能在声明后再赋值?
公共类测试{ int b; b=5; }为什么这样先声明再赋值是错误的? 机制是什么?
这是因为i=3是赋值语句,不能单独出现在方法或{}以外的地方
更改为
公共类测试{ int I; {i=3; //{}中编写即可()该代码块优先于构建方法执行)2)可以执行以下程序。 公共类测试)静态Inta; //在类体中声明整数静态变量a。 publicstaticvoidmain (字符串[ ] args ) { a=3; //在方法中将值代入静态变量a。 system.out.println(a='a ); }3)公共类hello { int a; //在类体中声明整数实体变量a。 publicstaticvoidmain (字符串[ ] args ) { a=3; //在方法中将值代入实体变量a。 system.out.println(a='a ); )二、成员变量可以用类体声明并同时赋值。 例如,静态变量:静态int a=3; 实例变量: int b=5;
例如:
公共类测试{静态int a=3; //向类体声明整数的静态变量a并代入初始值。 int b=5; //向类体声明整数实体变量b并代入初始值。 publicstaticvoidmain (string [ ] args ) system.out.println ) (ab=() ab ) ); }三、所有变量(包括成员变量),无论是类名还是方法,都不能以这种形式声明和分配变量
int a=b=3; 翻译系统认为b没有声明哪个数据类型。
另外,数据类型转换有隐式转换和显式转换,也就是强制类型转换。 隐式转换只能从高字节数据类型转换为低字节数据类型,因此不会丢失原始数据的精度。 要将变量从低字节数据类型转换为高字节数据类型,只能使用显式转换。 如下所示。
短整型a=3; int b=65537; a=b; 程序报告错误。
于是,a=(短) b
不会报告错的。 但是,有时会失去数据本来的正确性。 如上所述,a=1; 因为a是由b用后16位的位值代入的。