chenjinlong

static和final关键字

static关键字可用在变量、方法和内部类中。
在类的定义体中,方法的外部可包含static语句块,在所属的类被载入时执行一次,用于初始化static属性,但不能初始化非静态变量,类变量在整个类中共享。
如:
public class Count {
  private int serialNumber;
  public static int counter;

  static {
    System.out.println("static自由块被执行");   //先执行静态块
    counter = 1;
  }

  public static int getTotalCount() {
    return counter;
  }
  public Count() {
    counter++;
    serialNumber=counter;
  }
  public static void main(String[] args)
  {
   System.out.println("main() invoked");
   System.out.println("counter = "+Count.counter);
        Count t=new Count();
        System.out.println("counter = "+Count.counter+" "+t.serialNumber);
  }
}

java.lang.Math是一个final类,不可被继承,final变量是引用变量,则不可以改变它的引用对象,但可以改变对象的数据,final方法不可以被覆盖,但可以被重载。
如:
class Aclass
{
 int a;
 //构造器
 public Aclass()
 {
  a = 100;
 }
 final public void paint(){
  System.out.println("55555555");
 }
 final public void paint(int i){
  System.out.println(i);
 }
 public void setA(int theA)
 {
  a = theA;
 }
 public int getA()
 {
  return a;
 }
}

//定义一个类来测试
public class TestFinal
{       
       //如果final变量是引用变量,则不可以改变它的引用对象,但可以改变对象的数据
 final Aclass REF_VAR=new Aclass();
 public static void main(String[] args)
 {
  TestFinal tf = new TestFinal();
  tf.REF_VAR.setA(1);
  System.out.println(tf.REF_VAR.getA());
  tf.REF_VAR.paint();
  tf.REF_VAR.paint(1);
 }
}

posted on 2010-08-23 20:09 chenjinlong 阅读(178) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

My Links

Blog Stats

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜