开发者社区> 问答> 正文

Java中的static关键字静态变量的初始化问题是什么?

Java中的static关键字静态变量的初始化问题是什么?

展开
收起
游客gzyuldo4mrg6i 2022-03-29 20:51:40 618 0
1 条回答
写回答
取消 提交回答
  • 如果你需要通过计算来初始化你的static变量,你可以声明一个static块,Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块:

    class Value3 {

    static int c = 0;
    
    Value3() {
    
       c = 15;
    
    }
    
    Value3(int i) {
    
       c = i;
    
    }
    
    static void inc() {
    
       c++;
    
    }
    

    }

    public class Count {

    public static void prt(String s) {
    
       System.out.println(s);
    
    }
    
    Value3 v = new Value3(10);
    
    static Value3 v1, v2;
    
    static {//此即为static} 
    
       prt("v1.c=" + v1.c + "  v2.c=" + v2.c);
    
       v1 = new Value3(27);
    
       prt("v1.c=" + v1.c + "  v2.c=" + v2.c);
    
       v2 = new Value3(15);
    
       prt("v1.c=" + v1.c + "  v2.c=" + v2.c);
    
    }
    
    public static void main(String[] args) {
    
       Count ct = new Count();
    
       prt("ct.c=" + ct.v.c);
    
       prt("v1.c=" + v1.c + "  v2.c=" + v2.c);
    
       v1.inc();
    
       prt("v1.c=" + v1.c + "  v2.c=" + v2.c);
    
       prt("ct.c=" + ct.v.c);
    
    }
    

    }

    2022-03-29 20:53:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载