黑马程序员技术交流社区
标题:
static关键字
[打印本页]
作者:
jiaweizhang
时间:
2015-9-17 12:13
标题:
static关键字
static (静态的) 修饰符:用于修饰成员(成员变量,成员方法)
静态修饰的内容被对象共享(节约内存空间),除了被对象调用,还能被类调用,写法 类名.静态成员
特点:
1.随着类的加载而加载---会随着类的消失而消失,生命周期最长
2.优先于对象存在
3.被所有对象共享
4.可以直接被类名调用
共享区(方法区、数据区):存放类中的方法,类中的共享数据,static修饰的成员存放在方法区
成员变量(实例变量)和类变量(static修饰)的区别:
1.存放位置:
类变量随着类的加载而存在于共享区中。
实例变量对着对象的建立而存在于堆内存中。
2.生命周期:
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。
注意:
1.静态方法只能访问静态成员(方法、变量)
非静态方法既可以访问静态,也可以访问非静态
2.静态方法中不可以定义this,super关键字
静态方法的使用:
当一个类中未封装特有的数据,该类的方法只体现功能,则方法可以定义成静态方法。外部类不需要创建对象就可以直接调用
为了程序更严谨,强制让该类不能创建对象,用私有化(private)构造方法完成,如果方法也不需要外部调用,也将其私有化处理
作者:
不爱念经的小僧
时间:
2015-9-17 14:22
静态方法不能定义this,super等关键字的原因是:静态是随着类的加载而加载的,也就是说在静态加载时,调用该方法的对象是不存在的,所以静态方法中不能定义this,super关键字
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2