static表示静态,用来修饰成员变量和成员方法的关键字,也可以形成静态代码块。被static修饰的变量、方法和代码块,在类被加载的时候,就在方法区中生成,无需引用任何对象,就可以访问。
1、static成员变量:不属于对象,属于类,不管创建多少对象,都只有一份,通常通过类名直接引用。
2、static成员方法:不需要创建对象,直接用类名进行调用,运行结果与对象无关,仅仅与输入参数有关。由于与对象无关,故而在static方法中不能对非静态成员变量进行访问。static方法的作用是提供一些工厂方法和工具方法。
3、static代码块:属于类的代码块,在类的加载期间执行,只执行一次,通常用来加载静态资源。
public class A{
private int x;
public static void main (String[] args){
B b = new B(10);
System.out.println(b.x);
}
A (int y){
x = y;
}
}
变量x被定义为私有变量,但是并不能阻止构造器对它的初始化,所以最后x被初始化为9