java中的类成员

Python010

java中的类成员,第1张

这个涉及到jvm虚拟机的类加载机制 ,static成员变量方法在类加载过程的最后一步就已经用<clinit>()方法初始化了,a.test()? 虚拟机完全不会认为,因为test()是类方法,所以任何对象调用它的时候等同于直接test(),这个方法不属于任何对象私有,你的a=null是有点刁难它,但虚拟机更叼,它才不会理会你哪个对象调用它 ,这与它无关,因为它已经初始化了,无需对象引用,直接调用就是了。

说得有点乱,望对楼主有帮助!

手速慢了 楼主已经采纳了!悲伤。。。。。

成员变量和方法分为静态和实例变量和方法\x0d\x0a例如定义一个类:\x0d\x0aclass Text\x0d\x0a{\x0d\x0a public static int number\x0d\x0a public int temp\x0d\x0a public static void method(){}\x0d\x0apublic void method2(){}\x0d\x0a}\x0d\x0a如果你想访问temp属性,你就必须先创建一个Text的对象,才能访问:Text b = new Text();\x0d\x0ab.temp这就是实例成员变量。实例变量也是一样\x0d\x0a而你想 访问number的话,不用创建Text的实例就可以访问,就像这样:Text.number.这就是类成员变量。实例方法也是一样\x0d\x0a主要区别就是访问是需不需要创建对象,而对于类成员变量,所有对象是共享一个变量的。