static详细分析:
1.首先关于static修饰的方法的解释:
“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”
总结: 方便在没有创建对象的情况下来进行调用(方法/变量)。
很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
2.static 变量:
static变量也被称为静态变量,静态变量与非静态变量的区别就是:静态方法是被所有的对象共享的,在内存中只存在一个副本,当它在类初次加载的时候就被初始化了。而非静态变量是所有的对象共有的,在创建对象初始化的时候,存在多个副本,各个对象拥有的副本互相不影响。
static成员变量的初始化顺序按照定义的顺序进行初始化。
3.static 方法:
static方法被称为静态方法,由于静态方法不依赖于任何对象就可以访问,因此对于静态方法来说,是没有this的。并且静态方法中是不能访问非静态的方法和成员变量的,因为静态成员方法/变量是必须依赖于类才能访问的。但在非静态方法中是可以访问静态方法的。
我们最常见的static方法就是main方法,至于为什么main方法必须是static的,现在就很清楚了。因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。