分享

static关键字举例

 水晶涟漪 2009-07-22

类加载时期:

public class TestClassLoad {
 static int i;
 static {// 类相关
  System.out.println("static Test");
 }
 {// 对象相关
  System.out.println("语句块Test");
 }

 public TestClassLoad() {
  System.out.println("TestClass");
 }

 // TestClassLoad.main("");
 public static void main(String[] args) {
  System.out.println("begin");
  TestClassLoad.i = 3;// 类名.时加载类
  System.out.println("i=   " + i);

  TestClassLoad tcl = null;
  System.out.println("end");
  new TestClassLoad();// new 对象时加载类
  new TestClassLoad();
 }
}

静态方法重写:

public class TestStaticMethod
  extends Super{
 int i1 = 0;
 static int i2 = 0;
 public static void test(){
  //i1 = 10;//非静态属性不能直接使用
  i2 = 10;
  System.out.println("subclass");
 }
 public static void main(String[] args){
  Super s = new TestStaticMethod();
  s.test();//=Super.test();
 }//静态方法可以重写,但是发生多态时,调重写前的
}
class Super{
 public static void test(){
  System.out.println("super");
 }
}

静态属性:

public class TestStaticField {
    private int i1 = 0;//在堆内存
    private static int i2 = 0;//在池中
    public TestStaticField(){
     i1++;
     i2++;}
 public static void main(String[] args) {
  System.out.println(TestStaticField.i2);
  TestStaticField tf1 = new
    TestStaticField();
  TestStaticField tf2 = new
    TestStaticField();
  System.out.println(tf1.i1);
  System.out.println(tf1.i2);
  System.out.println(tf2.i1);
  System.out.println(tf2.i2);
 }

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多