●静态变量,类共有成员
static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在。即可以通过Potato.price即可访问。
-所有的对象实例,如例子中的obj1和obj2关于price变量的值都共享存储在一个共同的空间(栈)。
●static方法
-静态方法也无需通过对象来引用,而通过类名可以直接引用。
-在静态方法中,只能使用静态变量,不能使用非静态变量。
-静态方法禁止引用非静态方法。
-查看例子StaticMethodTest.java。
●关于static修饰类(内部类), 使用的机会较少,暂忽略不计。
static 块:只在类第一次被加载时调用。
-换句话说,在程序运行期间,这段代码只运行一次。
-执行顺序: static块>匿名块>构造函数。
●总结
static变量:不管有多少个对象,内存中只有一份
static方法:可以用类名直接引用,无需new对象来引用
static块: static块 只执行一次,并且static块>匿名块>构造函数