简介
- 一旦用了static 关键字,那么这样的内容就不再属于自己,而是属于类的。
- 凡是本类的对象,都共享一份。
- 一旦使用static 修饰成员方法,那么就成了静态方发。静态方法不属于对象,而是属于类的。如果没有static关键字,那么就要首先创建对象,然后通过对象使用它。
MyClass.methodStativc();
- 如果先创建对象,然后在通过对象再调用成员方法。那么在编译之后,仍会被java翻译成“
类名称.静态方法名
”
MyClass obj=new MyClass();
obg.methodStatic();
静态方法 的限制
- 静态方法不能访问非静态方法。
原因:在内存中时先有的静态内容,后有的非静态内容。 - 静态方法中不能使用this
this代表当前的对象,通过谁调用的方法,谁就是当前对象。 (对象是非静态的)
静态代码块
- 格式
public class 类名称{
static {
//静态代码块的内容
}
}
特点:当第一次用到本类时,静态代码块执行唯一的一次。
静态的内容总是优先与非静态,所以静态代码块比构造方法先执行
- 静态代码块的典型用途:用来一次性对静态成员变量进行赋值。