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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sunpeijie 中级黑马   /  2016-1-7 20:06  /  608 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static关键字
1、static 修饰成员变量:
i.        静态成员变量
在方法区中,被所有对象所共享
1.        由于被所有对象共享,只要有一个对象改变静态成员变量的值,所有的对象使用的静态变量值也就都改变了
2.        由于在方法区中,所以可以直接通过  类名.静态成员变量  的形式来调用
ii.        原理(理解):
1.        静态成员变量和非静态成员变量的位置:
内存空间不一样:
a)        静态成员变量:依赖于类,在方法区
b)        非静态成员变量:依赖于对象,在堆内存中
2.        静态成员变量和非静态成员变量的生命周期:
生命周期不一样:
a)        静态成员变量,随着类的加载而存在于方法区,类只加载一次
b)        非静态成员变量,随着对象的创建而存在于堆内存中,随着对象的创建而创建,随着对象的消失而消失
只要new 对象,每个对象都有自己特有的变量(属性)
2、static修饰方法:
1.        成员 方法被static 修饰,叫做静态方法
2.        特点:
可以不用创建对象,直接通过  类名.方法  的形式来调用
3.        静态方法:
a)        静态方法不可以访问非静态成员变量
b)        静态方法可以访问静态成员变量
4.        非静态方法:
非静态成员方法,既可以访问非静态成员变量,也可以访问静态成员变量
5.        总结:
a)        静态方法只可以访问静态成员变量
b)        非静态成员方法,既可以访问非静态成员变量,也可以访问静态成员变量
c)        可以通过私有化静态类的构造方法,达到不允许创建静态类的对象
6.        static 方法要注意:
不能出现 this 与 super 关键字
原因:调用静态方法可以使用类名直接调用,这时候有可能在内存中还没有存在着对象
3、静态代码块
i.        格式:
ii.        作用:
iii.        静态代码块注意细节:
1.        随着类的加载而执行,只执行一次
构造代码块初始化对象,静态代码块就是初始化类的
2.        静态代码块:程序运行加载类,类只加载一次,所以静态代码块也只执行一次
构造代码块,只要创建对象就会执行





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马