静态方法

静态方法不可以调非静态全局变量,从内存的角度看,就是当类被加载的时候静态方法和静态属性(全局静态变量)被加载到内存中,就是在内存中开辟一段内存地址用来保存静态方法和静态属性,这时候没有被实例化的类在内存中是不存在的,所以静态方法是不能访问非静态的全局变量。在类被实例化的时候,就是new 某个类的时候,在内存中给这个类开辟一些内存空间保存这个类的对象,这个时候就可以用静态方法去访问非静态的全部变量。

那为什么main方法是静态方法,却可以调用非静态方法呢?

因为类在main函数被实例化的时候,已经在内存里开辟空间保存好相关的对象了,所以静态方法就可以调用了。main函数完成了实例化对象,对象其实就是该函数的局部变量了。方法的局部变量,所以可以访问。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐