java中的static:
一,staic修饰变量
1.内存角度:
被static修饰的变量:程序运行过程中只占用一份内存
没有被static修饰的变量:建多少个对象,就产生多少份内存
2.访问方式的角度:
被static修饰的变量一般是 用类访问,所以又叫类变量
而没有被static修饰的变量一般 用实例来访问
3.static变量有什么用?
一般是用来共享的
(比如说,用来统计全世界一共有多少个person对象
=>每次调用对象,肯定会调用构造方法,所以直接在person对象的构造方法里面写个count++,
就能统计一共创建了多少个person对象)
二,staic修饰方法
1.叫法:静态方法,类方法(就像被static修饰的变量叫类变量一样)
同样,被static修饰的类方法,既可以通过实例访问,又可以通过类访问,
但是,推荐使用类来访问
2.类方法内部不可使用this
3.没有被static修饰的方法:实例方法
4.
…一些其他不常用的细节
总结:
类方法(static方法)内部可以直接访问别的类方法和类变量,
但是不能直接访问实例方法和实例变量(因为类方法内部没有this);
实例方法内部可以直接访问别的实例方法和实例变量(因为实例方法内部有this),
也能直接访问别的类方法和类变量;