参考: https://blog.csdn.net/lilil 371324/article/details/51241580http://www.Sina.com/:在静态变量、实例变量或类体中
全局变量不能在JAVA全局变量中声明(定义),但必须在类体中中赋值,然后在静态变量可以先在类体中声明中赋值当然,不能进行实例变量。 在公共类测试{ staaation }//类体中声明整数静态变量a。 publicstaticvoidmain (字符串[ ] args ) { a=3; //在方法中将值代入静态变量a。 system.out.println(a='a ); } }为什么}} java全局变量不能在声明后再赋值? 公共类测试{ int b; b=5; }为什么这样先声明再赋值是错误的? 机制是什么?
那是因为赋值语句,不能单独出现在方法和{}以外的地方
更改为
公共类测试{ int I; {i=3; //{}中即可()该代码块优先于构造方法的执行)成员变量可以在类中声明并同时赋值。 例如,静态变量:静态int a=3; 实例变量: int b=5;
公共类测试{静态int a=3; //向类体声明整数的静态变量a并代入初始值。 int b=5; //向类体声明整数实体变量b并代入初始值。 publicstaticvoidmain (string [ ] args ) system.out.println ) (ab=() ab ) ); }三、所有变量(包括成员变量)无论是类还是方法,都不能以这种形式声明和分配变量) )。
编译系统认为b没有声明任何数据类型。
另外,数据类型转换有隐式转换和显式转换,也就是强制类型转换。 隐式转换只能从高字节数据类型转换为低字节数据类型,因此不会丢失原始数据的精度。 要将变量从低字节数据类型转换为高字节数据类型,只能使用显式转换。 如下所示。
短整型a=3; int b=65537; //a=b; 如果a=short(b ) a=short(b ),则不报告错误。 但是,有时会失去数据本来的正确性。 如上所述,a=1; 因为a是由b用后16位的位值代入的。