587
1、在声明变量后,必须使用赋值语句对变量进行显式初始化。
2、变量声明尽可能靠近变量第一次使用的地方。
3、对于局部变量,如果可以从变量的初始值来推断其类型,则不需要声明类型。
只需要使用关键词var而不需要指定类型。
实例
//Java尽量保证所有变量在使用前都能得到恰当的初始化,否则会报异常 //Java中提供了四种初始化方法:默认初始化、显式赋值初始化、调用类对象初始化和调用方法初始化。 //错误写法 voidf(){ inti; i++; //执行时会报异常,原因是变量i没有初始化 ##成员变量初始化方式之一————默认初始化: publicclassInitialValues{ booleant; charc; byteb; shorts; inti; longl; floatf; doubled; InitialValuesreference; voidprintInitialValues(){ System.out.println("DatatypeInitialvalue"); System.out.println("boolean"+t); System.out.println("char["+c+"]"); System.out.println("byte"+b); System.out.println("short"+s); System.out.println("int"+i); System.out.println("long"+l); System.out.println("float"+f); System.out.println("double"+d); System.out.println("reference"+reference); publicstaticvoidmain(String[]args){ newInitialValues().printInitialValues(); 输出: DatatypeInitialvalue booleanfalse char[]//char的默认值为0或者写为'\u0000',所以显示为空白 byte0 short0 int0 long0//0L float0.0//0.0F double0.0 referencenull ##成员变量初始化方式之二————显式赋值: publicclassInitialValues2{ booleanbool=true; charch='x'; byteb=47; shorts=0xff; inti=999; longlng=1; floatf=3.14f; doubled=3.14159; ##成员变量初始化方式之三————调用对象进行初始化赋值: classDepth{ publicclassMeasurement{ Depthd=newDepth(); //... //注意:如果没有为d赋予初值就尝试使用它,就会出现运行时错误,会产生异常。 ##成员变量初始化方式之四————调用方法进行初始化赋值: //1、调用无参方法 publicclassMethodInit{ inti=f(); intf(){ return11; //2、调用有参方法 publicclassMethodInit2{ inti=f(); intj=g(i); intf(){ return11; intg(intn){ returnn*10; //注意:调用有参方法时,方法中的参数不能是未初始化的类成员变量,否则会报异常