A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jiaweizhang 中级黑马   /  2015-9-17 12:13  /  684 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static (静态的)   修饰符:用于修饰成员(成员变量,成员方法)
静态修饰的内容被对象共享(节约内存空间),除了被对象调用,还能被类调用,写法 类名.静态成员

特点:
1.随着类的加载而加载---会随着类的消失而消失,生命周期最长
2.优先于对象存在
3.被所有对象共享
4.可以直接被类名调用

共享区(方法区、数据区):存放类中的方法,类中的共享数据,static修饰的成员存放在方法区

成员变量(实例变量)和类变量(static修饰)的区别:
1.存放位置:
        类变量随着类的加载而存在于共享区中。
        实例变量对着对象的建立而存在于堆内存中。
2.生命周期:
        类变量生命周期最长,随着类的消失而消失。
        实例变量生命周期随着对象的消失而消失。

注意:
1.静态方法只能访问静态成员(方法、变量)
  非静态方法既可以访问静态,也可以访问非静态
2.静态方法中不可以定义this,super关键字

静态方法的使用:
当一个类中未封装特有的数据,该类的方法只体现功能,则方法可以定义成静态方法。外部类不需要创建对象就可以直接调用
为了程序更严谨,强制让该类不能创建对象,用私有化(private)构造方法完成,如果方法也不需要外部调用,也将其私有化处理

1 个回复

倒序浏览
静态方法不能定义this,super等关键字的原因是:静态是随着类的加载而加载的,也就是说在静态加载时,调用该方法的对象是不存在的,所以静态方法中不能定义this,super关键字
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马