java学习笔记13——类成员
2014-01-21 11:42
239 查看
static修饰的成员就是类成员,包括类成员变量、类方法、静态初始化块。static不能修饰构造器,static修饰的类成员属于整个类,不属于单个实例。类成员变量属于整个类,当系统第一次准备使用该类时,系统会为该类成员变量分配内存空间,类成员变量开始生效,知道该类被卸载,该类的类成员变量所占有内存才会被系统的垃圾回收机制回收。类成员变量生存范围几乎等于该类的生存范围。当雷初始化完成后,类成员变量也被初始化完成。
类成员变量,即用static修饰的成员变量,可以通过类来访问,也可以通过类的对象来访问。但通过类的对象来访问类成员变量时,实际上并不是访问该对象所拥有的成员变量,因为当系统创建该类的对象时,系统不会再为类成员变量分配内存,也不会再次对类成员变量初始化,也就是说,对象根本不拥有对应类的类成员变量。通过对象访问类成员变量只是一种假象,通过对象访问的依然是该类的类成员变量:当通过对象来访问类成员变量时,系统会在底层转换为通过该类来访问类成员变量。
当使用实例来访问类成员时,实际上是委托给该类来访问类成员,因此即使年某个实例为null,也可以访问它所属类的类成员。
类成员,不能访问实例成员。因为类何曾元是属于类的,类成员的作用域比实例成员的作用域更大,完全可能出现类成员已经初始化完成,但实例成员还不曾初始化的情况,所以允许类成员访问实例
成员将会引发大量错误。
类成员变量,即用static修饰的成员变量,可以通过类来访问,也可以通过类的对象来访问。但通过类的对象来访问类成员变量时,实际上并不是访问该对象所拥有的成员变量,因为当系统创建该类的对象时,系统不会再为类成员变量分配内存,也不会再次对类成员变量初始化,也就是说,对象根本不拥有对应类的类成员变量。通过对象访问类成员变量只是一种假象,通过对象访问的依然是该类的类成员变量:当通过对象来访问类成员变量时,系统会在底层转换为通过该类来访问类成员变量。
当使用实例来访问类成员时,实际上是委托给该类来访问类成员,因此即使年某个实例为null,也可以访问它所属类的类成员。
类成员,不能访问实例成员。因为类何曾元是属于类的,类成员的作用域比实例成员的作用域更大,完全可能出现类成员已经初始化完成,但实例成员还不曾初始化的情况,所以允许类成员访问实例
成员将会引发大量错误。
相关文章推荐
- java学习笔记13——JDBC初步
- Java学习笔记13:输出26个字母矩阵
- java学习笔记13
- Java学习笔记(一)——类成员变量默认值
- 黑马程序员—13—java基础:有关集合类的学习笔记和心得体会
- 你不知道的Java学习笔记13--Date类
- Java学习笔记(成员变量初始化补充)
- java学习笔记(三)----成员权限,构造函数,this用法
- java个人学习笔记13(Object+内部类+局部内部类+匿名内部类)
- java学习笔记—ServletConfig、ServletContext接口(13)
- Effective Java 学习笔记(13)
- java学习笔记13--反射机制与动态代理
- java学习笔记-设计模式13(享元模式)
- 黑马程序员之java学习笔记13
- Java 学习笔记(0x13) Map 接口
- 【学习笔记14】java面向对象-成员内部类、局部内部类
- JAVA学习笔记(三)成员变量、局部变量
- Java学习笔记13--比较器(Comparable、Comparator)
- 黑马程序员——学习笔记13.Java正则表达式
- JAVA反射(2) - Field成员变量 学习笔记