黑马程序员-static关键字
2014-08-09 22:32
218 查看
------- android培训、java培训、期待与您交流! ----------
static作为一个关键字,是一个修饰符,用于修饰成员
static的特点:
1.用于数据的共享。
2.被static修饰的成员都存在于方法区,随着类的加载而加载
3.为成员提供了新的访问方式: 类名。成员
4.优先于对象存在
有优点就会有缺点: 不能对特有数据进行修饰。
静态方法只能访问静态成员
静态中不能使用this,super关键字
为什么呢? 结合优点很容易看出,因为用于数据的共享,那么特有数据是不能进行修饰。
因为被修饰的成员都存在于方法去,是随类而加载的,所以在对象之前,那么就无法访问堆中的成员
同理,也就不能使用 代表对象的this和super
当静态方法访问了非静态数据时,经常会发生无法从静态上下文调用这个错误
主方法就是典型的静态。
静态的使用:静态修饰的只能是成员,所以可以按照成员方法和属性来说。
成员属性:是否是特有数据
成员方法:是否持有或者访问了对象特有的数据
那么成员变量静态前后的区别:
也是可以根据优点和缺点来说:
首先静态是共享数据,存在于方法区
随类加载和消失,提供了特殊的访问方式 类名.成员
并且如果是属性的话还可以被对象或者直接被类名调用,两种形式
而普通的成员是特有数据,只能存于对象中,也就是只能存于堆中。随着对象加载或者消失,只能使用对象来调用
静态代码块: 就是由普通代码块外加static的形式
static
{
执行语句
}
这个是随类加载,并且只执行一次,优先于主函数
静态代码块执行优先于构造代码块优先于构造函数
static作为一个关键字,是一个修饰符,用于修饰成员
static的特点:
1.用于数据的共享。
2.被static修饰的成员都存在于方法区,随着类的加载而加载
3.为成员提供了新的访问方式: 类名。成员
4.优先于对象存在
有优点就会有缺点: 不能对特有数据进行修饰。
静态方法只能访问静态成员
静态中不能使用this,super关键字
为什么呢? 结合优点很容易看出,因为用于数据的共享,那么特有数据是不能进行修饰。
因为被修饰的成员都存在于方法去,是随类而加载的,所以在对象之前,那么就无法访问堆中的成员
同理,也就不能使用 代表对象的this和super
当静态方法访问了非静态数据时,经常会发生无法从静态上下文调用这个错误
主方法就是典型的静态。
静态的使用:静态修饰的只能是成员,所以可以按照成员方法和属性来说。
成员属性:是否是特有数据
成员方法:是否持有或者访问了对象特有的数据
那么成员变量静态前后的区别:
也是可以根据优点和缺点来说:
首先静态是共享数据,存在于方法区
随类加载和消失,提供了特殊的访问方式 类名.成员
并且如果是属性的话还可以被对象或者直接被类名调用,两种形式
而普通的成员是特有数据,只能存于对象中,也就是只能存于堆中。随着对象加载或者消失,只能使用对象来调用
静态代码块: 就是由普通代码块外加static的形式
static
{
执行语句
}
这个是随类加载,并且只执行一次,优先于主函数
静态代码块执行优先于构造代码块优先于构造函数
相关文章推荐
- 黑马程序员——零基础学习iOS开发——07 全局变量、局部变量、static和extern关键字
- 黑马程序员——Java基础:static关键字、单例设计模式
- 黑马程序员——static关键字
- 13.黑马程序员-static关键字、静态代码块
- 黑马程序员-java学习之static关键字
- 黑马程序员 ------Static关键字的学习
- 黑马程序员_C语言的extern和static关键字
- 黑马程序员——高新技术---Java基础语法—面向对象_构造方法,static 关键字
- 奋斗黑马程序员----Java之static关键字详解
- 黑马程序员_iOS开发C语言基础之关键字typedef、static、extern使用
- 黑马程序员——static关键字详解
- 黑马程序员_JavaSE基础知识总结七:new、this、static关键字和单例模式初步
- 黑马程序员----final和static关键字
- 黑马程序员-JAVASE入门( 面向对象、单例设计模式、this、static关键字)
- 黑马程序员_static 关键字
- 黑马程序员_笔记十三_static关键字
- 黑马程序员——OC语言基础---Static关键字使用
- 黑马程序员——面向对象——static关键字——代码块
- 黑马程序员--static关键字的使用
- 黑马程序员-OC语言-关于OC中的static关键字使用(听课笔记)