全新java初学者实践教程16(java SE5.0版)----基本语法5

    这已经是百家拳软件项目研究室的第16次课了,在我们前几次课的基础上,我们继续学习一下百家拳软件项目研究室的第16次课了,在我们前几次课的基础上,我们继续学习一下java的语法。这回我们,讲static关键字。
    static关键字可以用来修饰类的变量,方法和内部类。static是静态的意思,也是全局的意思它定义的东西,属于全局与类相关,不与具体实例相关。就是说它调用的时候,只是ClassName.method(),而不是new ClassName().method()。new ClassName()不就是一个对象了吗?static的变量和方法不可以这样调用的。它不与具体的实例有关。实践:
class Count {
    privateintserialNumber;
    publicstaticintcounter = 0; //一个静态变量counter
    public Count() {
       counter++;   //创建Counter的时候递增
       serialNumber = counter;}
    publicint getSerialNumber(){
       returnserialNumber;
    }}
class OtherClass {
    publicint increment(){
       return Count.counter++;//静态的变量不属于任何实例只能直接用类调用
    }}
publicclass TestStaticVar {
    publicstaticvoid main(String[] args){
       Count[] cc = new Count[10];
       OtherClass o = new OtherClass();
       for (int i=0;i<cc.length;i++){
           cc[i] = new Count();
           System.out.println("cc["+i+"].serialNumber = "+cc[i].getSerialNumber());
           System.out.println(o.increment());
       }}}查看结果
    类的方法中带有static关键字,这个方法就是静态方法。静态方法也是要通过类名,而不是实例访问。实践:
class GenerealFunction {
    publicstaticint add(int x,int y){
       return x+y;
}}
publicclass UseGeneral {
    publicstaticvoid main(String[] args){
       //调用时还是用类直接调用
       int c = GenerealFunction.add(19,18);
         System.out.println("结果是"+c);
}}
    注意:子类不能重写父类的静态方法哦,也不能把父类不是静态的重写成静态的方法。想隐藏父类的静态方法的话,在子类中声明和父类相同的方法就行了。
   
前一阵子有同学问了,main()是什么意思啊?main()的前面不是也有一个static吗,它也是静态方法。它是程序的入口点,就是说java的程序是由java虚拟机执行的,java语言和虚拟机的入口就是main()因为它是static的,这可以使JVM不创建实例对象就可以运行该方法。因此我们在main()中调用别的类的非静态方法,就要创建实例。像上面的例子:OtherClass o = new OtherClass();
System.out.println(o.increment()); 不用实例o去调用是不行的。
前面我们已经见到很多这样的例子了。
大家看一个错误的例子:
int x;
public static void x() {
    x = 15; //这个是错误的,x是非静态变量
}
static 还可以修饰程序块{}括起来,用法与上述两种方法相同
public class StaticInit {
 public static int count = 1;
 static {
    count = Integer.getInteger("myApplication.counter").intValue();
 }
}
 
阅读更多
想对作者说点什么? 我来说一句

全新java初学者实践教程

2007年08月11日 200KB 下载

全新java初学者实践教程.doc

2010年06月08日 774KB 下载

全新java基础实践教程

2009年05月22日 143KB 下载

全新java初学者实践附加教程

2007年10月21日 438KB 下载

Java初学者实践教程Java

2009年05月14日 6.68MB 下载

java初学者实践教程

2010年08月13日 213KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭