当中变量什么时候需要
初始化?~!
*^1. 对于类的成员变量,
不管程序有没有显式的
进行初始化,Java虚拟机
都会先自动给它初始化为
默认值。
默认值如下:
Boolean false
Char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
2. 局部变量声明之后,Java虚拟机就不
会自动给它初始化为默认值,因此局部变
量的使用必须先经过显式的初始化。
但是需要声明的是:对于只负责接收一
个表达式的值的局部变量可以不初始化,
参与运算和直接输出等其它情况的局部变量
需要初始化。
通过下面这个测试可以看到JVM对哪些数据
初始化,哪写数据不初始化:
public class TestStatic {
static int x; //类的成员变量,JVM负责
初始化 * static int method()
{
int y=0; //此处必须自己初始化,
它不属于类成员变量,是个method的局
部变量,JVM不负责初始化
return y;
}
public static void main
(String[] args) {
TestStatic as=new TestStatic();
int z=0; //此处必须自己初始化,它不
属于类成员变量,是个主函数里的局部
变量,JVM不负责初始化
int aa=3; //此处aa参与了运算,
所以必须初始化
aa=aa+2;
int a=1,b=2,max; //max只是负责接收
表达式的值,不需要初始化
max=a>b?2:1;
System.out.println(max); //1 System.out.println(aa); //5
System.out.println("z="+z); //z=0 System.out.println("x="+as.x);
//x=0
System.out.println("y=
"+as.method()); //y=0 }
}
总结为一句话便是:
类里定义的数据成员称为属性,属性可不赋
初值,若不赋初值则JAVA会按上表为其
添加默认值;方法里定义的数据成员称为
变量,变量在参与运算之前必须赋初值~~!
Boolean false
Char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
2. 局部变量声明之后,Java虚拟机就不
会自动给它初始化为默认值,因此局部变
量的使用必须先经过显式的初始化。
但是需要声明的是:对于只负责接收一
个表达式的值的局部变量可以不初始化,
参与运算和直接输出等其它情况的局部变量
需要初始化。
通过下面这个测试可以看到JVM对哪些数据
初始化,哪写数据不初始化:
public class TestStatic {
static int x; //类的成员变量,JVM负责
初始化 * static int method()
{
int y=0; //此处必须自己初始化,
它不属于类成员变量,是个method的局
部变量,JVM不负责初始化
return y;
}
public static void main
(String[] args) {
TestStatic as=new TestStatic();
int z=0; //此处必须自己初始化,它不
属于类成员变量,是个主函数里的局部
变量,JVM不负责初始化
int aa=3; //此处aa参与了运算,
所以必须初始化
aa=aa+2;
int a=1,b=2,max; //max只是负责接收
表达式的值,不需要初始化
max=a>b?2:1;
System.out.println(max); //1 System.out.println(aa); //5
System.out.println("z="+z); //z=0 System.out.println("x="+as.x);
//x=0
System.out.println("y=
"+as.method()); //y=0 }
}
总结为一句话便是:
类里定义的数据成员称为属性,属性可不赋
初值,若不赋初值则JAVA会按上表为其
添加默认值;方法里定义的数据成员称为
变量,变量在参与运算之前必须赋初值~~!
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
沒有留言:
張貼留言
if you like make fds, wellcome you here~~anytime***
my free place for everyones who want the good software,
come & download them~ wellcome!!