1,static 的 作用:
static 是静态的意思,可以修饰 成员方法,成员变量,被static修饰的变量或者方法可以被本类的所有对象共享。
使用场景:
当 成员需要被共享,那用static修饰就好啦;
2,static 所修饰的变量的 调用:
- 类名 . 静态成员变量 (推荐);
- 对象名 . 静态成员变量 ;
Fu.parse=100;
//这里直接用 父类 Fu 调用静态的 变量 parse
3,为何推荐用类名调用变量或方法的原因:
原因:因为static修饰的成员变量(在类初始化时,会同时创建static所修饰的成员变量(放在静态区))会比对象优先创建,因此,直接用类名直接调用即可,所以不需要多此一举再去创建对象去调用static所修饰的变量。而且在单例模式中,构造器被私有的情况下,要调用方法就必须设置为静态,在类加载的时候就能被调用;
4,static 的 访问特点:
一句话,静态的成员(方法)只能访问静态的成员。因此,不能把所有东西都定义为静态,要看场景;
原因:因为,静态的成员会比非静态的优先创建,因此,在静态成员调用非静态成员的时候,非静态的成员还未创建,即不存在非静态成员,所以无法访问;
5,总结:
- static成员变量,存放在静态区,仅且只有一份(共享),而且,static 会优先创建!!!
- 且,静态的成员只能访问同样是静态的成员;如:静态方法访问静态变量;静态的对象调用静态方法……;
-
6,静态(static)方法 和 实例方法 的区别:
静态方法可以直接使用类名作引用类型直接调用;(如:单例模式下的静态对象返回方法的调用)
- 实例方法只能创建对象进行实例化调用;(创建对象也称为实例化对象,用于调用实例成员) ```java //静态方法的调用: Student.run();
//实例方法的调用: Student s = new Student(); s.run(); ```
7,静态方法 多数用于 工具类,为了调用方便里面的方法;
比如,在idea中的 Arrays 工具类,用于对数组进行操作,调用对应的方法,排序(sort)啊,输出(toString)等;