static 静态的
static方法就是没有this的方法。
在static方法内部不能调用非静态方法,反过来是可以的。
在静态的内容中,可以直接使用静态的内容,不可以直接使用非静态的内容
再非静态的内容中,可以直接使用静态的内容,可以直接使用非静态的内容
而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。
static是成员修饰符,不能修饰局部
被修饰的成员变量会转为类变量(静态变量)
- static修饰 变量 → 类变量
- static修饰 方法 → 类方法
静态的内容是属于类的,成员的内容是都属于对象的,跟随对象使用
静态的变量会在类第一次加载时候加载,独有一份,当前类中所有对象共享的资源
位置 \ 调用内容 | 静态内容 | 非静态内容 |
---|---|---|
静态内容中 | 直接 或 对象 调用 | 对象调用 |
非静态内容中 | 直接调用 | 直接调用 |
static 可以修饰变量、方法、代码块和内部类
static 变量是这个类所有,由该类创建的所有对象共享同一个 static 属性
可以通过创建的对象名.属性名 和 类名.属性名两种方式访问
static 变量在内存中只有一份
static 修饰的变量只能是类的成员变量
static 方法可以通过对象名.方法名和类名.方法名两种方式来访问
static 代码块在类被第一次加载时执行静态代码块,且只被执行一次,主要作用是实现 static 属性的初始化
static 内部类属于整个外部类,而不属于外部类的每个对象,只可以访问外部类的静态变量和方法