Java: static
static member / field / method
每 new
一个 object 即相当于申请了一块内存,用来存放这个 object 的 member/field/method。两个 object 的 member/field 不尽相同,同时也许因为如此,导致两个 object 的 method 不尽相同,从而这两个 object 要占据两块内存,而且它们之间没有共享 member/field/method。
如果有 field/member/method 只与 class 有关,即不会在不同的 object 中有不同的值或操作,亦即在所有的 object 中表现都一样,可以将其设置为 static。可以将 static member/field/method 理解为归 class 所有,即存在于 class 的内存块中,而不是在 object 的内存块中。
在调用时,可以直接使用 class.staticMember/staticField/staticMethod
,当然,用 object.staticMember/staticField/staticMethod
也行,但这样无法体现 member/field/method 的 static 性。
static import
// 精确导入方式
import static pkg.class/interface.staticMember;
// 模糊导入方式
import static pkg.class/interface.*;
如果将 class/interface 中的 staticMember 静态导入,在后面的代码中就不用写 class/interface.staticMember
这么麻烦,直接写 staticMember
了事。
例如:
import static java.lang.System.out;
out.println("Hello World")
Comments