黑马程序员技术交流社区

标题: static关键词能否直接修饰类 [打印本页]

作者: 彭盼    时间: 2012-2-28 20:57
标题: static关键词能否直接修饰类
static关键词通常都用来修饰变量,可否直接拿来修饰一个类呢?
例如public static class{}
作者: 田啸    时间: 2012-2-28 21:02
static应该是不能修饰一个类的,但是可以在类中写static 代码块 :
      类中可以包含静态代码块,它不存在于任何方法体中。在JAVA虚拟机加载类时会执行这些静态代码块。如果类中包含多个静态块,那么JAVA虚拟机将按照他们在类中出现的顺序依次执行它,并且每个代码块只会被执行一次。

class StaticBlock{   
  
             static int i =5;   
             int j;   
             static{   
                      System.out.println("First :"+i++);   
                  }   
  
             static{   
                      System.out.println("Sencond :" +i++);   
                  }   
                  
             public static void main(String args[]){   
                      StaticBlock s1 = new StaticBlock();   
                      StaticBlock s2 = new StaticBlock();   
                      System.out.println("Last :"+i);   
                  }   
       }  

作者: 田啸    时间: 2012-2-28 21:07
我再补充一下啊,在一般类的定义中是不能使用static修饰符的,但是之所以提出来,是因为真有一种情况可以将类定义为static类型的,那就是内部类。
如下的定义中,是一个内部类的实现:
package net.moon.insignificant.staticclass;

public class StaticClassDemo {

public static void main(String[] args) {
StaticClassDemo.InnerClass ic = new StaticClassDemo.InnerClass();
ic.showMessage("Hello, world");
}

static class InnerClass{
public void showMessage(String msg){
System.out.println(msg);
}
}
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2