static小结
2013-02-25 14:36 littlelion 阅读(176) 评论(0) 编辑 收藏 举报我们再创建类时,类中包含了属性和方法,但是这些东西并未被使用,只有在执行了new之后,才会生成数据存储空间,所以类中的属性和方法要想使用,一定是跟某个对象关联的。正常的情况时,创建一个对象,就生成一个数据存储空间。
但有特殊的需求:只用一个存储区域来放置一个变量,不管创建了多少对象,或者不创建对象时,变量也放在那个位置。又或者某个方法,我不创建对象也能够调用这个方法。可以说,这样的(static)属性和方法都不是跟对象关联在一起的。
static定义的是为整个类所共有的一块区域。通过类来调用,不需要实例化对象就能访问:类名.变量名 / 类名.函数名。
static可以修饰的东西:
- 属性
- 方法
- 代码块
- static属性:访问方式:类名.变量名
- static方法:静态函数,不使用this,类调用,与对象无关
- static代码块:类中的一个代码块,存在于任何方法之外。静态代码块只执行一次,一般用来初始化静态成员
下面来看一个例子:
Java中的main函数写法是这样的:public static void main(String[] args){ //...// }
注意到main函数是static方法,这是因为main函数是整个程序的入口,一开始并不存在任何对象,所以main函数被定义为static。
Q:静态成员函数和全局函数
静态成员函数定义在类中,如果静态函数不定义在类中,那么它只是一个全局函数。
当调用静态成员函数时,不会把对象的句柄传递给它,因此它不能访问非static成员。
文中不足之处还望列位指出,谢谢。