本帖最后由 袁术森 于 2013-3-7 23:57 编辑
虽是视频上都有,我觉得这样总结出来对比着看比较容易理解两者的应用,希冀抛砖引玉。
我们知道调用成员的两种方式:1、用类名调用,但前提是被调用的成员须是静态的。2、用对象来调用。用两个例子来阐述下会很明了。
1、class Demo { int x=6; public static void main(String[] args) { System.out.println("x="+new Demo().x); }
}若没有下划线部分,就相当于在主函数(主函数是静态的方法)方法里调用了非静态的x变量,编译会报错找不到符号x。这里的下划线部分就是用Demo对象来调用的。因为Demo对象里有x成员变量。或者不添加下滑线部分,将非静态变量x前加static修饰,这样静态成员变量可被静态方法调用。
2、class Person { static int x=2; } class Demo { public static void main(String[] args) { System.out.println(Person.x); }这里便是通过类名直接调用静态的x变量,若把static去掉 ,就和例1类似了,通过对象调用的方式,即将Person.变为new Person().便可 }
|