所有带有static标记的都独立于实例,与实例无关,所谓的静态是相对于多态而言的,即对于不同的实例,不能表现出不同的状态
1.static静态类
所有成员必须是静态的
可以有静态的构造函数,但不能有实例构造函数,即不能创建该类的实例
静态类不能被继承
用途:用于分组不受实例影响的数据和函数创建一个包含数学方法的数学库,sqlhelper
2.静态类成员 (所有的类成员不管是引用类型还是值类型都存储在堆中)
- 静态字段: 被类所有的实例共享所有的实例都访问相同的内存位置,任何类的实例化对象都可以改变该静态字段的值,且对所有的实例是可见的
因静态字段和类的实例无关,所以通过类名加点直接访问
- 静态函数:静态函数只能访问静态成员,因为静态函数式独立于实例的, 因此不能访问实例成员
可以通过实例对象来调用,也可以通过类名加点直接访问
- 静态构造函数:类可以有静态构造函数和实例构造函数
通常静态构造函数用来初始化类的静态字段
静态构造函数不能有访问修饰符修饰,因为他是在类的任何实例被创建之前,静态成员被引用之前有系统自己调用,有访问修饰符毫无意义
- 静态属性 : 只能访问静态成员(属性相当于方法,静态方法不能访问实例成员),始终存在,不管是否存在实例,类名加点直接访问