static:
static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。
-
特性一:
被static修饰的属性可以被所有的对象所共享,在内存中只储存1份(1个地址)
没有被static修饰的属性仅属于对象,创建对象时会被初始化,在内存中存在多份(多个地址)
-
特性二:
static被称为静态方法,因为静态方法不需要通过构造函数创建对象就能访问。因此对于静态方法来说,是没有this指向调用者(对象)的。因为没有对象,所以不会有this。
同时,static方法中只能访问类中的被static修饰的成员(方法和属性),因为非静态的成员需要创建对象后才能使用。
结论:
静态方法中不能访问非静态的成员(方法和变量)
非静态的成员方法中是可以访问静态成员和非静态成员的
- 特性三:
可以使用类名访问
总结
被static修饰的方法称为静态方法,只能访问静态的,没有this,因为是在对象之前创立的(非静态的没有限制),主要作用于在没有创建对象的情况下来进行调用(方法/变量),只要类被加载了,就可以通过类名去进行访问类.方法名(),常用来创建工具对象