全新java初学者实践教程16(java SE5.0版) {|$kI`h,3-
基本语法5 ){mqo%{SO
fP
3eR>e
]Ky`AG`2~
,在我们前几次课的基础上,我们继续学习一下[font="Times]java的语法。这回我们,讲[font="Times]static关键字。 N MkOx$
[font="Times] static关键字可以用来修饰类的变量,方法和内部类。[font="Times]static是静态的意思,也是全局的意思。它定义的东西,属于全局与类相关,不与具体实例相关。就是说它调用的时候,只是[font="Times]ClassName.method(),而不是[font="Times]new ClassName().method()。 o5RvxGN
[font="Times]new ClassName()不就是一个对象了吗?[font="Times]static的变量和方法不可以这样调用的。它不与具体的实例有关。 x?rd9c
实践: /\qzTo
class Count { .Erv\lv*
private int serialNumber; },X.a@:
public static int counter = 0; //一个静态变量counter Mq\?J{E
public Count() { .5>]DZn6
counter++; //创建Counter的时候递增 2f{p$YIt
serialNumber = counter;} <k3KCt
public int getSerialNumber(){ ]2ab~
gr
return serialNumber; !r6Yq,3
}} ;9#%E
class OtherClass { ``]NB=N}{1
public int increment(){ o+{7"Na8[
return Count.counter++;//静态的变量不属于任何实例只能直接用类调用 w_"-rGV
}} uzb|yV'B
public class TestStaticVar { } PL{i
public static void main(String[] args){ [xb'73
Count[] cc = new Count[10]; mYfHBW:
OtherClass o = new OtherClass(); OW6dK#CFt
for (int i=0;ilength;i++){ ~233{vh$=>
cc = new Count(); Bx)!I]gi_
System.out.println("cc["+i+"].serialNumber = "+cc.getSerialNumber()); ;y7+ Q
System.out.println(o.increment()); (I6Q"&h]
}}} %p7onwKq0
类的方法中带有static关键字,这个方法就是静态方法。静态方法也是要通过类名,而不是实例访问。实践: Ik,N/[
class GenerealFunction { 9W-"mD;
public static int add(int x,int y){ i"+TKo-
return x+y; ve"tbNL
}} B^]Gv7-
public class UseGeneral { 'xG{q+jj'
public static void main(String[] args){ Pxkh;:agD
//调用时还是用类直接调用 6*EIhIQ(
int c = GenerealFunction.add(19,18); w`<