class A { int i;// right i为属性,系统会默认该值为0 void f() { System.out.printf("%d\n", i); } void g() { int i;//error 这是一个局部变量,系统分配的是辣鸡值,会认为没有初始化,c语言会认为没有错 System.out.printf("%d\n", i);//error 这是一个局部变量,系统分配的是辣鸡值,会认为没有初始化,c语言会认为没有错,若只定义i不出错,但是当要引用的时候就会出错 } void k (int i) { this.i=i; System.out.printf("%d\n", i); }
}
public class Test {
public static void main(String[] args) {
int i;//right
A aa=new A();
aa.f();
System.out.printf("%d\n", i);//eror同样会认为引用的时候i没有赋值
}
}