大家 都知道,我们可以机遇一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是static大显身手的时候了。
Java中被static修饰的成员称为静态成员和类成员。它属于整个类所有,而不是某个对象所有,即被雷的所有对象所共享。
静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他左右的特殊性更推荐用类名进行访问。
使用static可以修饰变量,方法和代码块。
1.访问静态方法和静态属性的2中方法:
//num是静态属性
第一种方法:通过对象来访问
Util util = new Util();
util.num = 12;
util.add(1,21);
第二种方法:直接通过类名来访问,我们推荐使用这种方法
Util.num = 12;
Util.add(1,23);
简而言之:方便在没有创建对象的情况下来进行调用(方法/变量)。
2.对于静态方法来说,是没有this的,因为静态方法不依赖于任何对象就可以进行访问。因为它不依附于任何对象,既然都没有对象,就谈不上this了。
由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。要想调用必须加static
但是在非静态成员方法中是可以访问静态成员方法/变量的。
而对于非静态成员方法,它访问静态成员方法/变量显然是毫无限制的。