less than 1 minute read

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")

Categories:

Updated:

Comments