面向对象-类成员
2018-03-24 16:47
86 查看
static修饰的成员就是类成员。
static关键字不能修饰构造器。static修饰的类成员属于整个类,不属于单个实例。
static可以修饰成员变量,方法,初始化块,内部类(包括接口,枚举)。
类变量属于属于整个类,当系统第一次准备使用该类时,系统会为该类变量分配内存空间,类变量开始生效,直到该类被卸载,该类的类变量所占有的内存才被系统的垃圾回收机制回收。变量生存范围几乎等于该类的生存范围。当类初始化完成后,类变量也被初始化完成。
null对象可以访问它所属类的类成员。public class NullAccessStatic{
private static void test(){
System.out.printl("static修饰的类方法");
}
public static void main(String[] args) {
NullAccessStatic nullAccessStatic = null;//定义一个NullAccessStatic变量,其值为null
nullAccessStatic.test();//使用null对象调用所属类的静态方法
}
}编译,运行上面的程序,一切正常,程序将打印出“static修饰的类方法”字符串,这表明null对象可以访问它所属类的类成员。
对于static关键字,有一条非常重要的规则:类成员(包括方法,初始化块,内部类和枚举类)不能访问实例成员(包括成员变量,方法,初始化块,内部类和枚举类)。因为类成员是属于类的,类成员的作用域比实例成员的作用域更大。完全可能出现类成员已经初始化完成,但实例成员还不曾初始化的情况,如果允许类成员访问实例成员将会引起大量的错误。
static关键字不能修饰构造器。static修饰的类成员属于整个类,不属于单个实例。
static可以修饰成员变量,方法,初始化块,内部类(包括接口,枚举)。
类变量属于属于整个类,当系统第一次准备使用该类时,系统会为该类变量分配内存空间,类变量开始生效,直到该类被卸载,该类的类变量所占有的内存才被系统的垃圾回收机制回收。变量生存范围几乎等于该类的生存范围。当类初始化完成后,类变量也被初始化完成。
null对象可以访问它所属类的类成员。public class NullAccessStatic{
private static void test(){
System.out.printl("static修饰的类方法");
}
public static void main(String[] args) {
NullAccessStatic nullAccessStatic = null;//定义一个NullAccessStatic变量,其值为null
nullAccessStatic.test();//使用null对象调用所属类的静态方法
}
}编译,运行上面的程序,一切正常,程序将打印出“static修饰的类方法”字符串,这表明null对象可以访问它所属类的类成员。
对于static关键字,有一条非常重要的规则:类成员(包括方法,初始化块,内部类和枚举类)不能访问实例成员(包括成员变量,方法,初始化块,内部类和枚举类)。因为类成员是属于类的,类成员的作用域比实例成员的作用域更大。完全可能出现类成员已经初始化完成,但实例成员还不曾初始化的情况,如果允许类成员访问实例成员将会引起大量的错误。
相关文章推荐
- 面向对象_继承中成员方法关系
- 面向对象中的特殊的成员修饰符和几个特殊的方法
- 【面向对象程序设计常见面试题】对对象成员进行初始化的次序是什么?(11)
- C#面向对象——对象成员、方法重载、引用类库等
- 黑马程序员-博客 (3) 面向对象一之类和对象、成员变量和局部变量、继承、封装、多态
- 一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问
- JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块
- java面向对象之成员变量和局部变量 以及他们的内存分配
- 面向对象之成员变量之一
- 面向对象-成员变量、局部变量-封装
- 黑马程序员--03.Java面向对象--02.【static关键字】【main方法】【静态成员】
- c#面向对象基础 静态成员、构造函数、命名空间与类库
- python面向对象之类成员
- 【面向对象设计基础】存取方法+Private类成员和方法
- 面向对象:三大特性、类成员、property
- java学习日记_26:面向对象之静态变量与成员变量的区别
- 【面向对象程序设计常见面试题】对类的成员的访问属性有什么?(11)
- php面向对象全攻略 (二) 实例化对象 使用对象成员
- Java重修之路(六)面向对象初识,类与对象,成员变量,局部变量,封装,构造函数,构造代码块,this关键字
- java---面向对象vs面向过程,局部变量vs成员变量