目录
1.static抽象意义:
就拿学生类来说,很多学生都要去教室上课,这个教室的属性并不需要每个学生对象中都存储一份,而是需要让所有的学生来共享。在Java中,被static修饰的成员,称之为静态成员,也可以称为类成员,其不属于某个具体的对象,是所有对象所共享的。
2.static修饰成员变量:
static修饰成员变量可以达到全局变量的效果,称为静态成员变量。
1.静态成员变量最大特性:
不属于某个具体的对象,是所有对象所共享的
2.其他特性:
1. 不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中
2. 既可以通过对象访问,也可以通过类名访问,但一般更推荐使用类名访问
3. 类变量存储在方法区当中
4. 生命周期伴随类的一生(即:随类的加载而创建,随类的卸载而销毁)
3.static修饰成员方法:
1.用来在类外访问静态成员变量
pub;ic class Student {
......
private static String classRoom = "软嵌201";
......
public static String getClassRoom(){
return classRoom;
}
}
public class TestStudent {
public static void main(String args[]) {
System.out.println(Student.getClassRoom());
}
}
//输出“软嵌201”
2.静态方法不属于某个具体对象,是类方法。
3.静态方法中不能访问任何非静态成员变量
4. 静态方法中不能调用任何非静态方法,因为非静态方法有this参数,在静态方法中调用时候无法传递this引用
5.静态方法不能重写。
4.静态代码块
1.静态代码块一般用来初始化静态成员变量
2.静态代码块是类的属性,只会在类被加载时执行一次。
5.静态内部类
1.静态内部类只能访问外部类静态成员
2.静态内部类可以直接调用外部类的静态属性和方法