码迷,mamicode.com
首页 > 编程语言 > 详细

Java-static

时间:2015-07-06 16:07:05      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:java   static变量   

Java-static

一 static
static是一个修饰符,只能修饰成员变量和方法
除了对象调用的方式,还多了一种调用方式
即可以使用 类名.静态成员 来调用,简称为类变量,

2,static在数据区:类的方法和静态方法

3,static特点:
随着类的加载而加载,随着类的消失而消失
生命周期最长
优先于对象存在,静态变量在对象不存在的时候也存在
被所有对象所共享
直接被类名调用

4,使用的原因
虽然可以通过建立类的对象来使用类的方法,对类进行操作,
但是如果出现了:
1,定义了类的对象,却没有使用类的非静态变量
2,类没有封装静态变量
这两种情况的话。就可以考虑将类中的方法都定义为static,使得可以
直接通过类名.静态方法名来调用方法

将方法都静态后,可以方便与使用,但是该类还是可以被其他的程序建立变量
为了更加严谨,强制不能建立对象,可以通过将构造函数私有化来完成

二 实例变量(非静态变量)和静态变量(类变量)的区别
1,存放位置
类变量随着类的加载而存在于数据区中
非静态变量随着对象的建立而存在于堆内存中

2,生命周期
类变量生命周期最长,随着类的消失而消失
非静态变量生命周期随着对象的消失而消失

三 什么时候使用静态
什么时候定义静态变量:
当对象中出现共享数据时,该数据被静态修饰
对象中的特有数据定义成非静态存在堆内存

什么时候定义静态函数:
当函数内部没有访问到非静态成员的时候,可以定义为静态函数

非静态变量定义在对象中,当不需要使用非静态变量的时候,
就不需要对象去调用,所以可以定义为静态函数,用类名直接调用

注意事项
1,静态方法只能访问静态成员
非静态方法可以访问静态和非静态

2,静态方法不可以定义this,super关键字
因为静态优先于对象存在,所以静态方法不可以有this

3,主函数静态
优点:
对对象的共享数据进行单独空间存储,节省空间,没有必要每个对象都春一份
可以被类名调用

缺点:
生命周期过长
访问出现局限性,(静态只能访问静态)

版权声明:欢迎交流,QQ872785786

Java-static

标签:java   static变量   

原文地址:http://blog.csdn.net/qq_22075977/article/details/46775069

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!