第1个回答 2011-12-29
class A{
static int i =2;//声明一个静态变量i
int j=3;
}
class B{
static int i =6;//声明一个静态变量i
int j=9;
}
class C{
static A a;//声明一个A的静态对象a
B b;//声明一个B的对象b
public static void main(String[] args){
System.out.println(A.i);
System.out.println(A.j);//Error
a = new A();
System.out.println(a.i);//调用A中的静态变量i
System.out.println(a.j);//调用A中的变量j
//上面你能弄懂,下面没问题才对...
System.out.println(C.a);//这是一个A的对象,可以C.a.i或者C.a.j访问其中的数据
System.out.println(C.b);//Error
}
}
原则:static数据和方法可以直接用类名.数据(类名.方法)访问(A.i),也可以创建对象后访问(a.i);对于非 static数据和方法,我们必须创建一个对象,并用那个对象访问数据或方法。比如上面例子中的a = new A();只能a.j而不能A.j。