[#0x0000] static

1. static member/field/function

 

  每new一个object即相当于申请了一块内存,用来存放这个object的member/field/function。两个object的member/field不尽相同,同时也许因为如此,导致两个object的function不尽相同,从而这两个object要占据两块内存,而且它们之间没有共享member/field/function。
  如果有field/member/function只与class有关,即不会在不同的object中有不同的值或操作,亦即在所有的object中表现都一样,可以将其设置为static。可以将static member/field/function理解为归class所有,即存在于class的内存块中,而不是在object的内存块中。
  在调用时,可以直接使用class.staticMember/staticField/staticFunction,当然,用object.staticMember/staticField/staticFunction也行,但这样无法体现member/field/function的static性。

2. static import

 

  精确导入方式:

import static pkg.class/interface.staticMember;

  import最后只用写出成员名,就算是function,也不用写出括号或是参数列表。  
  

  模糊导入方式:

import static pkg.class/interface.*;

  这样可以将class/interface中的staticMember静态导入,在后面的代码中就不用写class/interface.staticMember这么麻烦,直接写staticMember了事。如果是field就直接写staticField,不用写class/interface.staticField;如果是function就直接写staticFunction(),不用写class/interface.staticFunction()。例如:

import static java.lang.System.out;

之后就可以直接写out.println(),不用写System.out.println()。注意,这里out才是static member,println是out的方法,且不是static,所以不能直接写println()。

你可能感兴趣的:(Java)