我是靠谱客的博主 满意大树,最近开发中收集的这篇文章主要介绍java静态构造器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

静态初始化器public class Textstatic {
      public static void main (String[] args) {
           Phonecard200 My1=new Phonecard200();//建立一个新对象My1(标号a)
           Phonecard200 My2=new Phonecard200();//建立一个新对象My2(b) 
           System.out.println("the first card number is :"+My1.Cardnumber); 
           System.out.println("the second card number is :"+My2.Cardnumber);
       }
  }

class Phonecard200 { 
           static long nextCardnumber;//静态域 
           long Cardnumber; 
           static  {
                        nextCardnumber=20001008;
                      }//静态初始化器 
           Phonecard200()//构造函数  {
                       Cardnumber=nextCardnumber++;  
           }
    }

 当类Phonecard200加载到内存时,系统自动调用静态初始化器,把类的静态域nextCardnumber初始化成20001008,当我们创建类Phonecard200的对象My1时(标号a),系统调用构造函数,将My1的卡号Cardnumber设置成nextCardnumber的当前值,即:20001008,然后把nextCardnumber的值自动加1。当(标号b)我们创建类Phonecard200的另一个对象My2时,系统会再度调用构造函数,将My2的卡号Cardnumber设置成nextCardnumber的当前值,即:20001009,然后把nextCardnumber的值再自动加1。如果我们还有创建对象的话,就这样一直下去。  但是,如果我们把静态初始化器去掉,而把那句nextCardnumber=20001008;放到构造函数的第一句去的话,就不一样了。这样输出的老是20001008,而不会是原先的20001008和20001009。这说明静态初始化器和构造函数是不一样的。

最后

以上就是满意大树为你收集整理的java静态构造器的全部内容,希望文章能够帮你解决java静态构造器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部