全新java初学者实践教程16(java SE5.0版) Y(6evo&IR
基本语法5 QD%xmP
i=<;$+tW
5?H8?~&dz
,在我们前几次课的基础上,我们继续学习一下[font="Times]java的语法。这回我们,讲[font="Times]static关键字。 z#&1>
[font="Times] static关键字可以用来修饰类的变量,方法和内部类。[font="Times]static是静态的意思,也是全局的意思。它定义的东西,属于全局与类相关,不与具体实例相关。就是说它调用的时候,只是[font="Times]ClassName.method(),而不是[font="Times]new ClassName().method()。 9cB+x`+Lu
[font="Times]new ClassName()不就是一个对象了吗?[font="Times]static的变量和方法不可以这样调用的。它不与具体的实例有关。 9oc_*V0<
实践: If'2
m_
class Count { L3\#ufytb
private int serialNumber; \l(J6Tu
public static int counter = 0; //一个静态变量counter 8zeeC
eI U
public Count() { >6Uc|D
counter++; //创建Counter的时候递增 =At" Q6-O
serialNumber = counter;} %R?7u'=~
public int getSerialNumber(){ )lLeL#]FLO
return serialNumber; 7Q|<6210
}} :8OT
class OtherClass { 8:c=h/fa
public int increment(){ pdJ]V`m
return Count.counter++;//静态的变量不属于任何实例只能直接用类调用 fD[O
tc
}} OcV,pJ
public class TestStaticVar { eef&ZL6g
public static void main(String[] args){ t!3s@
Count[] cc = new Count[10]; =_BHpgL
OtherClass o = new OtherClass(); Y)/|C7~W
for (int i=0;ilength;i++){ %bTuE' `b
cc = new Count(); 4Lg
,J9
System.out.println("cc["+i+"].serialNumber = "+cc.getSerialNumber()); sDNWB_~
System.out.println(o.increment()); \;MP|:{pU
}}} r}qDvC D
类的方法中带有static关键字,这个方法就是静态方法。静态方法也是要通过类名,而不是实例访问。实践: py\:u5QS
class GenerealFunction { Qqg.z-G%.
public static int add(int x,int y){ }kQ{T:q4
return x+y; zB0*KgAn{
}} #%QHb,lhl
public class UseGeneral { d`rZgY
public static void main(String[] args){ MuMq%uDA"
//调用时还是用类直接调用 W2rd[W
int c = GenerealFunction.add(19,18); LQ k^l`
System.out.println("结果是"+c); LTS{[(%
}} &C