static小结

为什么静态方法不能访问非静态属性、方法?

当类被加载的时,字节码文件被加载到虚拟机的时候,static变量(方法)就会在静态区分配空间。而成员变量则是在对象被实例化之后才会在堆区分配空间。当静态方法被加载的时候,非静态成员还没被分配空间,所以才会访问不了。但是在非静态方法里可以访问静态方法,访问方式 类名.静态变量名。

为什么在main函数里不能直接访问成员变量?

1.静态方法不能访问成员变量。
2.从面相对象的角度来说,成员变量是属于某个类的,是属于某个对象的,连类、对象都没有,是不可能去访问成员变量的。

static关键字的用法

  • static修饰变量和方法,被称为静态变量和静态方法,两者都属于静态资源,类实例可以共享。
  • 静态块,多用于初始化操作。
  • 用于修饰内部类,此时称之为静态内部类。
  • 静态类导包。是在JDK1.5之后引入的新特性,可以用来导入指定类中的静态资源,并且不需要使用类名.资源名的方式,可以直接去使用资源名。

你可能感兴趣的:(static小结)