package szsm;
/**
* 在静态方法里面创建一个局部变量,必须对其进行初始化赋值
*
* @author 2萌
*
*/
public class StringTest {
static String aString;
// String aString;
int a;
/**
* 普通方法:对于成员变量没有赋初值的变量,在普通方法里面打印的时候直接打印其系统默认赋给该类型的值。
* eg:String、Integer类型的成员变量初始值为null,int类型初始值为0
*/
public void A() {
System.out.println(aString);
System.out.println(a);
}
public static void main(String[] args) {
/**
* 在静态方法里面创建一个局部变量,必须对其进行初始化赋值
* eg:String aString;System.out.println(aString);这样打印输出时候就会报错:The local variable aString may not have been initialized
* int aString;System.out.println(aString);这样打印输出时候就会报错:The local variable aString may not have been initialized
* 静态方法调用静态的成员变量,静态方法必须调用static修饰的成员变量。如果该静态的成员变量未赋初值,则打印时候直接显示系统默认类型的赋值
*/
// String aString;
// Integer aString;
// System.out.println(aString);
String b = "bbb";
System.out.println("b = " + b);
StringTest s = new StringTest();
s.A();
}
}
静态方法里面为赋初值的成员变量,是在编译时候就不通过还是在运行期间抛出异常呢???
打印输出:
b = bbb
null
0
package szsm;
public class Test {
static String string;
public static void main(String[] args) {
System.out.println(string);
}
}
打印:
null
package szsm;
public class Test {
String string;
public static void main(String[] args) {
//报错提示:Cannot make a static reference to the non-static field aString
System.out.println(string);
}
}
string变量直接飘红 Cannot make a static reference to the non-static field aString
应该修改为 static String string;
如果String变量未初始化在main()方法里面:
public class Test {
public static void main(String[] args) {
/**
* 在静态方法里面创建一个局部变量,必须对其进行初始化赋值
* eg:String aString;System.out.println(aString);这样打印输出时候就会报错:The local variable aString may not have been initialized
* int aString;System.out.println(aString);这样打印输出时候就会报错:The local variable aString may not have been initialized
* 静态方法调用静态的成员变量,静态方法必须调用static修饰的成员变量。如果该静态的成员变量未赋初值,则打印时候直接显示系统默认类型的赋值
*/
String aString;
System.out.println(<u><span style="color:#ff0000;">aString</span></u>);
}
}
错误提示:
The local variable aString may not have been initialized